// bslh_spookyhashalgorithm.t.cpp                                     -*-C++-*-
#include <bslh_spookyhashalgorithm.h>

#include <bslmf_isbitwisemoveable.h>
#include <bslmf_issame.h>

#include <bsls_assert.h>
#include <bsls_asserttest.h>
#include <bsls_bsltestutil.h>
#include <bsls_platform.h>
#include <bsls_bsltestutil.h>

#include <algorithm>

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <wchar.h>

using namespace BloombergLP;
using namespace bslh;

//=============================================================================
//                                  TEST PLAN
//-----------------------------------------------------------------------------
//                                  Overview
//                                  --------
// The component under test is a `bslh` hashing algorithm.  The basic test plan
// is to compare the output of the function call operator with the expected
// output generated by a known-good implementation of the hashing algorithm.
// The component will also be tested for conformance to the requirements on
// `bslh` hashing algorithms, outlined in the `bslh` package level
// documentation.
//-----------------------------------------------------------------------------
// TYPEDEF
// [ 5] typedef bsls::Types::Uint64 result_type;
//
// CONSTANTS
// [ 6] enum { k_SEED_LENGTH = 16 };
//
// CREATORS
// [ 2] SpookyHashAlgorithm();
// [ 2] SpookyHashAlgorithm(const char *seed);
// [ 2] ~SpookyHashAlgorithm();
//
// MANIPULATORS
// [ 3] void operator()(void const* key, size_t len);
// [ 3] result_type computeHash();
// ----------------------------------------------------------------------------
// [ 1] BREATHING TEST
// [ 4] PLATFORM INDEPENDENCE FOR A GIVEN ENDIAN-NESS
// [ 7] Trait IsBitwiseMoveable
// [ 8] USAGE EXAMPLE
//-----------------------------------------------------------------------------

// ============================================================================
//                     STANDARD BSL ASSERT TEST FUNCTION
// ----------------------------------------------------------------------------

namespace {

int testStatus = 0;

void aSsErT(bool condition, const char *message, int line)
{
    if (condition) {
        printf("Error " __FILE__ "(%d): %s    (failed)\n", line, message);
        fflush(stdout);

        if (0 <= testStatus && testStatus <= 100) {
            ++testStatus;
        }
    }
}

}  // close unnamed namespace

// ============================================================================
//               STANDARD BSL TEST DRIVER MACRO ABBREVIATIONS
// ----------------------------------------------------------------------------

#define ASSERT       BSLS_BSLTESTUTIL_ASSERT
#define ASSERTV      BSLS_BSLTESTUTIL_ASSERTV

#define LOOP_ASSERT  BSLS_BSLTESTUTIL_LOOP_ASSERT
#define LOOP0_ASSERT BSLS_BSLTESTUTIL_LOOP0_ASSERT
#define LOOP1_ASSERT BSLS_BSLTESTUTIL_LOOP1_ASSERT
#define LOOP2_ASSERT BSLS_BSLTESTUTIL_LOOP2_ASSERT
#define LOOP3_ASSERT BSLS_BSLTESTUTIL_LOOP3_ASSERT
#define LOOP4_ASSERT BSLS_BSLTESTUTIL_LOOP4_ASSERT
#define LOOP5_ASSERT BSLS_BSLTESTUTIL_LOOP5_ASSERT
#define LOOP6_ASSERT BSLS_BSLTESTUTIL_LOOP6_ASSERT

#define Q            BSLS_BSLTESTUTIL_Q   // Quote identifier literally.
#define P            BSLS_BSLTESTUTIL_P   // Print identifier and value.
#define P_           BSLS_BSLTESTUTIL_P_  // P(X) without '\n'.
#define T_           BSLS_BSLTESTUTIL_T_  // Print a tab (w/o newline).
#define L_           BSLS_BSLTESTUTIL_L_  // current Line number

// ============================================================================
//                  NEGATIVE-TEST MACRO ABBREVIATIONS
// ----------------------------------------------------------------------------

#define ASSERT_SAFE_PASS(EXPR) BSLS_ASSERTTEST_ASSERT_SAFE_PASS(EXPR)
#define ASSERT_SAFE_FAIL(EXPR) BSLS_ASSERTTEST_ASSERT_SAFE_FAIL(EXPR)
#define ASSERT_PASS(EXPR)      BSLS_ASSERTTEST_ASSERT_PASS(EXPR)
#define ASSERT_FAIL(EXPR)      BSLS_ASSERTTEST_ASSERT_FAIL(EXPR)
#define ASSERT_OPT_PASS(EXPR)  BSLS_ASSERTTEST_ASSERT_OPT_PASS(EXPR)
#define ASSERT_OPT_FAIL(EXPR)  BSLS_ASSERTTEST_ASSERT_OPT_FAIL(EXPR)

// ============================================================================
//                  PRINTF FORMAT MACRO ABBREVIATIONS
// ----------------------------------------------------------------------------

#define ZU BSLS_BSLTESTUTIL_FORMAT_ZU

//=============================================================================
//                  GLOBAL FUNCTIONS & CLASSES FOR TESTING
//-----------------------------------------------------------------------------

typedef bsls::Types::Uint64 Uint64;

namespace {
namespace u {

const Uint64 minus1 = ~static_cast<Uint64>(0);

struct RandGen {
    // DATA
    Uint64 d_accum;

    // PRIVATE MANIPULATOR
    void munge()
    {
        d_accum = d_accum * 6364136223846793005ULL + 1442695040888963407ULL;
    }

  public:
    // CREATOR
    RandGen() : d_accum(0) {}

    // MANIPULATORS

    /// MMIX Linear Congruential Generator algorithm by Donald Knuth
    unsigned num(Uint64 seed = minus1)
    {
        if (minus1 != seed) {
            d_accum = seed;

            munge();
            d_accum ^= d_accum >> 32;
            munge();
            d_accum ^= d_accum >> 32;
            munge();
        }

        munge();

        return static_cast<unsigned>(d_accum >> 32);
    }

    void randMemory(void *memory, size_t size);

    template <class TYPE>
    void randVal(TYPE *var);
};

void RandGen::randMemory(void *memory, size_t size)
{
    char *ram = static_cast<char *>(memory);
    char *end = ram + size;

    for (size_t toCopy; ram < end; ram += toCopy) {
        unsigned randVal = num();
        toCopy = std::min<size_t>(sizeof(unsigned), end - ram);

#ifdef BSLS_PLATFORM_IS_BIG_ENDIAN
        // always change to little endian

        randVal = bsls::ByteOrderUtil::swapBytes32(randVal);
#endif

        memcpy(ram, &randVal, toCopy);
    }
}

template <class TYPE>
void RandGen::randVal(TYPE *var)
{
    BSLMF_ASSERT(sizeof(TYPE) <= sizeof(Uint64));

    Uint64 accum = num();
    accum |= (static_cast<Uint64>(num()) << 32);

    *var = static_cast<TYPE>(accum);
}

}  // namespace u
}  // namespace

//=============================================================================
//                             USAGE EXAMPLE
//-----------------------------------------------------------------------------
///Usage
///-----
// This section illustrates intended usage of this component.
//
///Example: Creating and Using a Hash Table
/// - - - - - - - - - - - - - - - - - - - -
// Suppose we have any array of types that define `operator==`, and we want a
// fast way to find out if values are contained in the array.  We can create a
// `HashTable` data structure that is capable of looking up values in O(1)
// time.
//
// Further suppose that we will be storing futures (the financial instruments)
// in this table.  Since futures have standardized names, we don't have to
// worry about any malicious values causing collisions.  We will want to use a
// general purpose hashing algorithm with a good hash distribution and good
// speed.  This algorithm will need to be in the form of a hash functor -- an
// object that will take objects stored in our array as input, and yield a
// 64-bit int value.  The functor can pass the attributes of the `TYPE` that
// are salient to hashing into the hashing algorithm, and then return the hash
// that is produced.
//
// We can use the result of the hash function to index into our array of
// `buckets`.  Each `bucket` is simply a pointer to a value in our original
// array of `TYPE` objects.
//
// First, we define our `HashTable` template class, with the two type
// parameters: `TYPE` (the type being referenced) and `HASHER` (a functor that
// produces the hash).

    /// This class template implements a hash table providing fast lookup of
    /// an external, non-owned, array of values of (template parameter)
    /// `TYPE`.
    ///
    /// The (template parameter) `TYPE` shall have a transitive, symmetric
    /// `operator==` function.  There is no requirement that it have any
    /// kind of creator defined.
    ///
    /// The `HASHER` template parameter type must be a functor with a method
    /// having the following signature:
    /// ```
    /// size_t operator()(TYPE)  const;
    ///                  -OR-
    /// size_t operator()(const TYPE&) const;
    /// ```
    /// and `HASHER` shall have a publicly accessible default constructor
    /// and destructor.
    ///
    /// Note that this hash table has numerous simplifications because we
    /// know the size of the array and never have to resize the table.
    template <class TYPE, class HASHER>
    class HashTable {

        // DATA
        const TYPE       *d_values;          // Array of values table is to
                                             // hold
        size_t            d_numValues;       // Length of `d_values`.
        const TYPE      **d_bucketArray;     // Contains ptrs into `d_values`
        size_t            d_bucketArrayMask; // Will always be `2^N - 1`.
        HASHER            d_hasher;          // User supplied hashing algorithm


      private:
        // PRIVATE ACCESSORS

        /// Look up the specified `value`, having the specified `hashValue`,
        /// and load its index in `d_bucketArray` into the specified `idx`.
        /// If not found, return the vacant entry in `d_bucketArray` where
        /// it should be inserted.  Return `true` if `value` is found and
        /// `false` otherwise.
        bool lookup(size_t      *idx,
                    const TYPE&  value,
                    size_t       hashValue) const;

      public:
        // CREATORS

        /// Create a hash table referring to the specified `valuesArray`
        /// having length of the specified `numValues`.  No value in
        /// `valuesArray` shall have the same value as any of the other
        /// values in `valuesArray`
        HashTable(const TYPE *valuesArray,
                  size_t      numValues);

        /// Free up memory used by this hash table.
        ~HashTable();

        // ACCESSORS

        /// Return true if the specified `value` is found in the table and
        /// false otherwise.
        bool contains(const TYPE& value) const;
    };

// Then, we define a `Future` class, which holds a c-string `name`, char
// `callMonth`, and short `callYear`.

    /// This class identifies a future contract.  It tracks the name, call
    /// month and year of the contract it represents, and allows equality
    /// comparison.
    class Future {

        // DATA
        const char *d_name;    // held, not owned
        const char  d_callMonth;
        const short d_callYear;

      public:
        // CREATORS

        /// Create a `Future` object out of the specified `name`,
        /// `callMonth`, and `callYear`.
        Future(const char *name, const char callMonth, const short callYear)
        : d_name(name), d_callMonth(callMonth), d_callYear(callYear)
        {}

        /// Create a `Future` with default values.
        Future() : d_name(""), d_callMonth('\0'), d_callYear(0)
        {}

        // ACCESSORS

        /// Return the month that this future expires.
        const char * getMonth() const
        {
            return &d_callMonth;
        }

        /// Return the name of this future
        const char * getName() const
        {
            return d_name;
        }

        /// Return the year that this future expires
        const short * getYear() const
        {
            return &d_callYear;
        }

        /// Compare this to the specified `other` object and return true if
        /// they are equal
        bool operator==(const Future& other) const
        {
            return (!strcmp(d_name, other.d_name))  &&
               d_callMonth == other.d_callMonth &&
               d_callYear  == other.d_callYear;
        }
    };

    /// Compare compare the specified `lhs` and `rhs` objects and return
    /// true if they are not equal
    bool operator!=(const Future& lhs, const Future& rhs)
    {
        return !(lhs == rhs);
    }

// Next, we need a hash functor for `Future`.  We are going to use the
// `SpookyHashAlgorithm` because it is a fast, general purpose hashing
// algorithm that will provide an easy way to combine the attributes of
// `Future` objects that are salient to hashing into one reasonable hash that
// will distribute the items evenly throughout the hash table.

    /// This struct is a functor that will apply the `SpookyHashAlgorithm`
    /// to objects of type `Future`.
    struct HashFuture {

        /// Return the hash of the of the specified `future`.  Note that
        /// this uses the `SpookyHashAlgorithm` to quickly combine the
        /// attributes of `Future` objects that are salient to hashing into
        /// a hash suitable for a hash table.
        size_t operator()(const Future& future) const
        {
            SpookyHashAlgorithm hash;

            hash(future.getName(),  strlen(future.getName()));
            hash(future.getMonth(), sizeof(char));
            hash(future.getYear(),  sizeof(short));

            return static_cast<size_t>(hash.computeHash());
        }
    };

//=============================================================================
//                     ELIDED USAGE EXAMPLE IMPLEMENTATIONS
//-----------------------------------------------------------------------------

// PRIVATE ACCESSORS
template <class TYPE, class HASHER>
bool HashTable<TYPE, HASHER>::lookup(size_t      *idx,
                                     const TYPE&  value,
                                     size_t       hashValue) const
{
    const TYPE *ptr;
    for (*idx = hashValue & d_bucketArrayMask; (ptr = d_bucketArray[*idx]);
                                   *idx = (*idx + 1) & d_bucketArrayMask) {
        if (value == *ptr) {
            return true;                                              // RETURN
        }
    }
    // value was not found in table

    return false;
}

// CREATORS
template <class TYPE, class HASHER>
HashTable<TYPE, HASHER>::HashTable(const TYPE *valuesArray,
                                   size_t      numValues)
: d_values(valuesArray)
, d_numValues(numValues)
, d_hasher()
{
    size_t bucketArrayLength = 4;
    while (bucketArrayLength < numValues * 4) {
        bucketArrayLength *= 2;

    }
    d_bucketArrayMask = bucketArrayLength - 1;
    d_bucketArray = new const TYPE *[bucketArrayLength];
    memset(d_bucketArray,  0, bucketArrayLength * sizeof(TYPE *));

    for (unsigned i = 0; i < numValues; ++i) {
        const TYPE& value = d_values[i];
        size_t idx;
        bool result = lookup(&idx, value, d_hasher(value));
        BSLS_ASSERT_OPT(!result);  (void)result;
        d_bucketArray[idx] = &d_values[i];
    }
}

template <class TYPE, class HASHER>
HashTable<TYPE, HASHER>::~HashTable()
{
    delete [] d_bucketArray;
}

// ACCESSORS
template <class TYPE, class HASHER>
bool HashTable<TYPE, HASHER>::contains(const TYPE& value) const
{
    size_t idx;
    return lookup(&idx, value, d_hasher(value));
}


//=============================================================================
//                     GLOBAL TYPEDEFS FOR TESTING
//-----------------------------------------------------------------------------

typedef SpookyHashAlgorithm Obj;
typedef BloombergLP::bsls::Types::Uint64 Uint64;

// ============================================================================
//                            MAIN PROGRAM
// ----------------------------------------------------------------------------

int main(int argc, char *argv[])
{
    int                 test = argc > 1 ? atoi(argv[1]) : 0;
    bool             verbose = argc > 2;
    bool         veryVerbose = argc > 3;
    bool     veryVeryVerbose = argc > 4;
    bool veryVeryVeryVerbose = argc > 5;

    (void)veryVeryVeryVerbose;  // suppress warning

    printf("TEST " __FILE__ " CASE %d\n", test);

    switch (test) { case 0:
      case 8: {
        // --------------------------------------------------------------------
        // USAGE EXAMPLE
        //   The hashing algorithm can be used to create more powerful
        //   components such as functors that can be used to power hash tables.
        //
        // Concerns:
        // 1. The usage example provided in the component header file compiles,
        //    links, and runs as shown.
        //
        // Plan:
        // 1. Incorporate usage example from header into test driver (C-1)
        //
        // Testing:
        //   USAGE EXAMPLE
        // --------------------------------------------------------------------

        if (verbose) printf("USAGE EXAMPLE\n"
                            "=============\n");

// Then, we want to actually use our hash table on `Future` objects.  We create
// an array of `Future`s based on data that was originally from some external
// source:

        Future futures[] = { Future("Swiss Franc", 'F', 2014),
                             Future("US Dollar", 'G', 2015),
                             Future("Canadian Dollar", 'Z', 2014),
                             Future("British Pound", 'M', 2015),
                             Future("Deutsche Mark", 'X', 2016),
                             Future("Eurodollar", 'Q', 2017)};
        enum { NUM_FUTURES = sizeof futures / sizeof *futures };

// Next, we create our HashTable `hashTable`.  We pass the functor that we
// defined above as the second argument:

        HashTable<Future, HashFuture> hashTable(futures, NUM_FUTURES);

// Now, we verify that each element in our array registers with count:
        for ( int i = 0; i < 6; ++i) {
            ASSERT(hashTable.contains(futures[i]));
        }

// Finally, we verify that futures not in our original array are correctly
// identified as not being in the set:

        ASSERT(!hashTable.contains(Future("French Franc", 'N', 2019)));
        ASSERT(!hashTable.contains(Future("Swiss Franc", 'X', 2014)));
        ASSERT(!hashTable.contains(Future("US Dollar", 'F', 2014)));

      } break;
      case 7: {
        // --------------------------------------------------------------------
        // TESTING BDE TYPE TRAITS
        //   The class is bitwise movable and should have a trait that
        //   indicates that.
        //
        // Concerns:
        // 1. The class is marked as `IsBitwiseMoveable`.
        //
        // Plan:
        // 1. ASSERT the presence of the trait using the `bslalg::HasTrait`
        //    metafunction. (C-1)
        //
        // Testing:
        //   Trait IsBitwiseMoveable
        // --------------------------------------------------------------------

        if (verbose) printf("\nTESTING BDE TYPE TRAITS"
                            "\n=======================\n");

        if (verbose) printf("ASSERT the presence of the trait using the"
                            " `bslalg::HasTrait` metafunction. (C-1)\n");
        {
            ASSERT(bslmf::IsBitwiseMoveable<SpookyHashAlgorithm>::value);
        }

      } break;
      case 6: {
        // --------------------------------------------------------------------
        // TESTING `k_SEED_LENGTH`
        //   The class is a seeded algorithm and should expose a
        //   `k_SEED_LENGTH` enum.
        //
        // Concerns:
        // 1. `k_SEED_LENGTH` is publicly accessible.
        //
        // 2. `k_SEED_LENGTH` is set to 16.
        //
        // Plan:
        // 1. Access `k_SEED_LENGTH` and ASSERT it is equal to the expected
        //    value. (C-1,2)
        //
        // Testing:
        //   enum { k_SEED_LENGTH = 16 };
        // --------------------------------------------------------------------

        if (verbose) printf("\nTESTING `k_SEED_LENGTH`"
                            "\n=======================\n");

        if (verbose) printf("Access `k_SEED_LENGTH` and ASSERT it is equal to"
                            " the expected value. (C-1,2)\n");
        {
            ASSERT(16 == SpookyHashAlgorithm::k_SEED_LENGTH);
        }

      } break;
      case 5: {
        // --------------------------------------------------------------------
        // TESTING `result_type` TYPEDEF
        //   Verify that the class offers the result_type typedef that needs to
        //   be exposed by all `bslh` hashing algorithms
        //
        // Concerns:
        // 1. The typedef `result_type` is publicly accessible and an alias for
        //    `bsls::Types::Uint64`.
        //
        // 2. `computeHash()` returns `result_type`
        //
        // Plan:
        // 1. ASSERT the typedef is accessible and is the correct type using
        //    `bslmf::IsSame`. (C-1)
        //
        // 2. Declare the expected signature of `computeHash()` and then assign
        //    to it.  If it compiles, the test passes. (C-2)
        //
        // Testing:
        //   typedef bsls::Types::Uint64 result_type;
        // --------------------------------------------------------------------

        if (verbose) printf("\nTESTING `result_type` TYPEDEF"
                            "\n=============================\n");

        if (verbose) printf("ASSERT the typedef is accessible and is the"
                            " correct type using `bslmf::IsSame`. (C-1)\n");
        {
            ASSERT((bslmf::IsSame<bsls::Types::Uint64,
                                  Obj::result_type>::value));
        }

        if (verbose) printf("Declare the expected signature of `computeHash()`"
                            " and then assign to it.  If it compiles, the test"
                            " passes. (C-2)\n");
        {
            Obj::result_type (Obj::*expectedSignature) ();

            expectedSignature = &Obj::computeHash;
            (void)expectedSignature;
        }

      } break;
      case 4: {
        // --------------------------------------------------------------------
        // PLATFORM INDEPENDENCE TEST
        //
        // Concerns:
        // 1. That all platforms get the same hash values for given memory
        //    input.
        //
        // Plan:
        // 1. Use the `RandGen` random number generator in the `u` namespace in
        //    this file to create input data.  `RandGen` is based on a
        //    modification of Donald Knuth's MMIX random number algorithm, and
        //    it produces the same result regardless of platform and CPU
        //    endian-ness.
        //
        // 2. In each record of the table is a `LEN` or length field, identical
        //    to the index in the table.
        //
        // 3. In the first loop, seed the random number generator with the LEN
        //    field.
        //
        // 4. Use the now-seeded random number generator to populate a buffer
        //    with data.
        //
        // 4. Use the random number generator to produce a hash seed.
        //
        // 5. Hash the buffer, with and without using the generated seed, to
        //    create 2 hash values.
        //
        // 6. Compare the hash values created with the hash values in the
        //    table, and confirm that they match.
        //
        // 7. Since the table values are the same across all platforms for a
        //    given endian-ness, running this test on all platforms confirms
        //    that the hash function is platform-independent for a given
        //    endian-ness.
        //
        // 8. In the second loop, iterate through the table 10 times.
        //
        // 9. Create two instances of `RandGen`, the first seeded with `LEN`,
        //    the second seeded with the iteration index.
        //
        // 10. Seed a buffer and hash seed with the first random number
        //     generator.  This buffer and seed will be identical to what they
        //     were for `LEN` in the first loop.
        //
        // 11. In a nested loop, for each iteration choose a value `subLen`
        //     which is in the range from 0 to the length of unhashed buffer.
        //
        // 12. Hash the next `subLen` bytes.
        //
        // 13. Continue iterating until the entire buffer has been hashed.
        //
        // 14. Call `computeHash` on the seeded and unseeded hash objects, and
        //     verify that they match the values in the table.
        //
        // Testing:
        //   PLATFORM INDEPENDENCE FOR A GIVEN ENDIAN-NESS
        // --------------------------------------------------------------------

        if (verbose) printf("PLATFORM INDEPENDENCE TEST\n"
                            "==========================\n");

        static const struct Data {
            int      d_line;
            unsigned d_len;
            Uint64   d_hash;
            Uint64   d_seedlessHash;
        } DATA[] = {
#ifdef BSLS_PLATFORM_IS_LITTLE_ENDIAN
            { L_,    0, 0xbefd3af445d89fc0ULL, 0xeec07ed910bce07aULL },
            { L_,    1, 0x524a65a807cdaa49ULL, 0x0ab0889740095888ULL },
            { L_,    2, 0x049c57f0f8bb99e4ULL, 0x6a071cceb4d53021ULL },
            { L_,    3, 0x2e6260a70696b8d3ULL, 0x8de49e8b1c985c4bULL },
            { L_,    4, 0xfa33063e564f9cf4ULL, 0xd84662f70780299bULL },
            { L_,    5, 0xf9e378ffc5e9a64cULL, 0xc549a072de31df1aULL },
            { L_,    6, 0xb3b1758e597294fcULL, 0x6f837bb45e2c7a51ULL },
            { L_,    7, 0xa746cb0fccd94f56ULL, 0xdbe8901fc4c0f976ULL },
            { L_,    8, 0x21c2f1294e3eb783ULL, 0x5291e87609e8d040ULL },
            { L_,    9, 0x93f148764446f6e2ULL, 0x832bc062bb7900eaULL },
            { L_,   10, 0xd74547565c89d1b0ULL, 0x638a1a7f9b7df946ULL },
            { L_,   11, 0xc38d8b399c7302f0ULL, 0x12c733ad3e7d346eULL },
            { L_,   12, 0x07d87c8a94ba13a6ULL, 0xa77d0f52f193f7fcULL },
            { L_,   13, 0x635a6045c634e0f0ULL, 0xa70e35138cfc85c7ULL },
            { L_,   14, 0xfacd68be68bfc971ULL, 0x21f2a27f5fcfdaceULL },
            { L_,   15, 0xe90d12d77f74a1e3ULL, 0x889e356a38b22fc4ULL },
            { L_,   16, 0x81c3c21807cd35dfULL, 0xa682c294b83a02caULL },
            { L_,   17, 0xb31324594e620b0cULL, 0x3c020a9f6745f2fbULL },
            { L_,   18, 0xbf367d1386e84708ULL, 0x00e7455c5bf7c5fdULL },
            { L_,   19, 0x2e05f0382ca339e0ULL, 0x8e15d27aff293a0dULL },
            { L_,   20, 0x35b9879d20ad7ef5ULL, 0xfee8167704127430ULL },
            { L_,   21, 0xaeb08ad3b55489c0ULL, 0xfc3edf3c738dac3aULL },
            { L_,   22, 0x054450a207989ec7ULL, 0xaf694f35f17ba16cULL },
            { L_,   23, 0x325b94cc4d4f0062ULL, 0x0b890e7ca0cfcda3ULL },
            { L_,   24, 0xaee9323ca1ff7253ULL, 0x49f45bb58d32d672ULL },
            { L_,   25, 0x10fa5343ad3356bbULL, 0x7c4679c341928281ULL },
            { L_,   26, 0x5154e3f1b8f0372dULL, 0xbfb698f2d38c0760ULL },
            { L_,   27, 0x401ed4f2ec859e06ULL, 0x5a4af8725340fb51ULL },
            { L_,   28, 0x9905624255ac50cdULL, 0x83110950b65fb965ULL },
            { L_,   29, 0xb71509dcd768dbd4ULL, 0x0762634d8d7e87afULL },
            { L_,   30, 0xece71d448ea99f29ULL, 0x312ed876768d291fULL },
            { L_,   31, 0x86cef1950227dabeULL, 0x667283b62624f0f8ULL },
            { L_,   32, 0x18e38fb998855e5fULL, 0xc42256d522abe6c0ULL },
            { L_,   33, 0xd4c8dca6a48661d0ULL, 0xbd935b4781cc6682ULL },
            { L_,   34, 0x3a1652ae8f2e4938ULL, 0x9d6c355d29a39bd8ULL },
            { L_,   35, 0xb430fedec4b2194bULL, 0x89d49e0f52972c77ULL },
            { L_,   36, 0x82da86558ab2fbc5ULL, 0xa97e1a13812d9ca4ULL },
            { L_,   37, 0xc6d3c051ed42bb3dULL, 0xca7a7e367bab92a9ULL },
            { L_,   38, 0x58ec1ea2b0c539a4ULL, 0x8283ba3c0cfcca07ULL },
            { L_,   39, 0x5b953e6ffa983bf9ULL, 0x2a50e3f36aa5cf23ULL },
            { L_,   40, 0xc4c4bb5ab69b349fULL, 0xd95fd6a8f36502b9ULL },
            { L_,   41, 0xac06f52e5cc04ae3ULL, 0x18c60943b330c7b0ULL },
            { L_,   42, 0x634bc1195858d879ULL, 0xdceeb4f93f8186e1ULL },
            { L_,   43, 0xda9b7d2d224cf962ULL, 0x1c64a296609c0de3ULL },
            { L_,   44, 0x25ded4a1829c8752ULL, 0xced42ca58bb54682ULL },
            { L_,   45, 0xe8b34181f7c2d1c0ULL, 0x38a26acd8bf12518ULL },
            { L_,   46, 0xee500f8eafbc680bULL, 0xf3c18cfcc5b52610ULL },
            { L_,   47, 0xf8c9fc07bff4036bULL, 0xec937f54438a60a7ULL },
            { L_,   48, 0x1a63d7cbc524a979ULL, 0x988af5ba2863ca81ULL },
            { L_,   49, 0x73d5440a580d8717ULL, 0x1cbec3b4be5e21d1ULL },
            { L_,   50, 0xcc06a60f9bbfa35eULL, 0x950728cf567466d0ULL },
            { L_,   51, 0x287a60c8106c3664ULL, 0x64a6778ff940e029ULL },
            { L_,   52, 0x56bfd7014be2c345ULL, 0x72b23573f33c0b07ULL },
            { L_,   53, 0xf94d08998111fbfcULL, 0x3dc6434de5f2fabaULL },
            { L_,   54, 0xd5cee741c646b5baULL, 0x0ca684c37bfcf3a5ULL },
            { L_,   55, 0xdc8892a8e1ffe2b3ULL, 0x147560b76fd1d6ebULL },
            { L_,   56, 0x028ccc53f79b1b6dULL, 0x6d83dcf30ceeda0dULL },
            { L_,   57, 0x46be4ace64ef6c64ULL, 0x9ea31e9e75b83127ULL },
            { L_,   58, 0xebdaf77e5ecbc5d6ULL, 0xb6dec923ed4f8e84ULL },
            { L_,   59, 0x95042f66a0539c4fULL, 0x1bca56079ca2cb46ULL },
            { L_,   60, 0xabc071c4cce33a70ULL, 0xf0f7232534a33381ULL },
            { L_,   61, 0x7570ff525b8260c0ULL, 0xea78b663a1265beeULL },
            { L_,   62, 0x015f964605006c11ULL, 0xb73430c436955696ULL },
            { L_,   63, 0x3eb8dccb93275cefULL, 0xbadf144b530f3dbaULL },
            { L_,   64, 0x4f0e9fb524b7dd88ULL, 0x97e0aca8c532b41fULL },
            { L_,   65, 0x3a9afe1730159098ULL, 0xbbec5bbe2d9ee595ULL },
            { L_,   66, 0x76cdc79a1e9b45a5ULL, 0x0376bb6eee2c501eULL },
            { L_,   67, 0x89d5fafa3ea37fd8ULL, 0x30f350b71bae29adULL },
            { L_,   68, 0xa6244cfce3198387ULL, 0x1faebf3a8c33a576ULL },
            { L_,   69, 0x70d9de349847c366ULL, 0x7d3651ef115d9ca9ULL },
            { L_,   70, 0x30c2b46a342dd6afULL, 0x2d9c8cf95787f11aULL },
            { L_,   71, 0x803cb3f082e7134aULL, 0x94203bf4d07effbcULL },
            { L_,   72, 0xee719100f9cfc831ULL, 0x60ef2a26945feae5ULL },
            { L_,   73, 0xa968d02c2433aaf2ULL, 0xa6432a51b00acfccULL },
            { L_,   74, 0xcf79ba5c99243083ULL, 0x2ea618d3ccce6631ULL },
            { L_,   75, 0x4ff1c397db9d7ecbULL, 0xc884b313383a835bULL },
            { L_,   76, 0x87c837e39b1f8372ULL, 0xf0baf14b5b2c7e3fULL },
            { L_,   77, 0x4814548c2abc14c5ULL, 0xfa3170f973c295f7ULL },
            { L_,   78, 0xf9166ee919509998ULL, 0x3ac277f482673eecULL },
            { L_,   79, 0xa8f2646cb9d307ccULL, 0x13ed607e03d0a941ULL },
            { L_,   80, 0x7909f8cb205ed6bfULL, 0x30816ba8612d1e9dULL },
            { L_,   81, 0x76790c55e9c85fdbULL, 0x329d5d955bcd5543ULL },
            { L_,   82, 0x171c55312c547dc5ULL, 0xe3874dae02b15eb8ULL },
            { L_,   83, 0x993f16d1a5e878f9ULL, 0x8e7ce533904f5c27ULL },
            { L_,   84, 0xae68433ae3355f3fULL, 0xb7eb67168ad1912bULL },
            { L_,   85, 0xf16e5d993e096d98ULL, 0xe4af20638d432c4dULL },
            { L_,   86, 0x5157386a17342b7dULL, 0x533ebeee2bf0e1b6ULL },
            { L_,   87, 0xc5d5db384ed147a4ULL, 0x72b888b631a07a73ULL },
            { L_,   88, 0x4a8d575061096c03ULL, 0x3f8e2a292a17de8dULL },
            { L_,   89, 0x4e2f210245ec2e05ULL, 0x658223ec56b89323ULL },
            { L_,   90, 0xe6e9e0d6636414edULL, 0x2d272a6c0f16ae69ULL },
            { L_,   91, 0xc577e6ec4b3ec55cULL, 0x561ff6425b82e0e8ULL },
            { L_,   92, 0xd2c6dfedd8656df8ULL, 0x2e17d98d44ea8cb1ULL },
            { L_,   93, 0x2b8dd13f5697ea99ULL, 0x1fd878be9e1f1bbdULL },
            { L_,   94, 0x797b8253baf3367aULL, 0xb1a3089c8c760851ULL },
            { L_,   95, 0x681d2c28758352b8ULL, 0xc3bdfb754775247eULL },
            { L_,   96, 0x13c1d47bd7702749ULL, 0xf2f5dca02793647eULL },
            { L_,   97, 0x549c06b1182f99a9ULL, 0x54b37739b449fb7eULL },
            { L_,   98, 0x63fd530154532518ULL, 0x0117a8af9cc69f0fULL },
            { L_,   99, 0x6be4838ab3b77f05ULL, 0xd13d9deb8cfa7384ULL },
            { L_,  100, 0xd0c3e6132162b843ULL, 0xbebd69732cb248b3ULL },
            { L_,  101, 0xade0c3c70f73ece5ULL, 0x9d6b19448c07c9cdULL },
            { L_,  102, 0x5fff0a67cc39205fULL, 0x2d2018911dccac1eULL },
            { L_,  103, 0x4f1a5c4008ae0ec4ULL, 0xbc9440d30e10b3cdULL },
            { L_,  104, 0x2df0cd2fe06dd1a4ULL, 0xbc31adc7b122d673ULL },
            { L_,  105, 0xca5d4a9638650d34ULL, 0xade51df6afdc9fc0ULL },
            { L_,  106, 0x465881885750b0c1ULL, 0x536214e19cada525ULL },
            { L_,  107, 0x8c3c2ead40935c97ULL, 0x777b216da5e2d5d5ULL },
            { L_,  108, 0x1893fc3fca2e3dfcULL, 0x4d733887e7da8fd5ULL },
            { L_,  109, 0x1806c62d2bec4d8fULL, 0x4a91de3d2c1a1eccULL },
            { L_,  110, 0x984faf41fa54f61cULL, 0x8c8037976eec92ebULL },
            { L_,  111, 0x6ee0ad85f5abe56eULL, 0x35710d79b1c795f0ULL },
            { L_,  112, 0xb43d971606807514ULL, 0x53b6df11f9af13baULL },
            { L_,  113, 0xaf1c2fad068564ffULL, 0x58aa40b2cafe8c27ULL },
            { L_,  114, 0xae5fa921127fd261ULL, 0x3a510949f1135612ULL },
            { L_,  115, 0x82a620742faa0ea3ULL, 0xa2f3fde806032502ULL },
            { L_,  116, 0x9e59cc22767bbbbaULL, 0x2e1910d47e5008bfULL },
            { L_,  117, 0x7f8a14f23631e7c3ULL, 0x495910b381b5b52bULL },
            { L_,  118, 0x2a5d8f10480f53efULL, 0x0139963abc36ca16ULL },
            { L_,  119, 0x188abf7be987a3e2ULL, 0x41ea775171dd6136ULL },
            { L_,  120, 0xbcf9177cb81f991fULL, 0x80dfd6a91af4b902ULL },
            { L_,  121, 0x7ee8532a3a3b4acdULL, 0x64c2f443b96aea2fULL },
            { L_,  122, 0x7a6d179a38f94cc0ULL, 0x77305f631fc34eebULL },
            { L_,  123, 0xea1172880a43daa3ULL, 0x5d9f3076921b92a7ULL },
            { L_,  124, 0xa89c73ea02237e3fULL, 0x1d8bf77e94339ab7ULL },
            { L_,  125, 0xc5a8aac0e1e487f7ULL, 0x6fbec41c2d7cd77eULL },
            { L_,  126, 0x517ab7a96e482345ULL, 0xdca9aa9a03ef414aULL },
            { L_,  127, 0xfb43eaa7936f2105ULL, 0xd80ba37e4de392b3ULL },
            { L_,  128, 0xcb7884df0680d51cULL, 0x0d95f9179462187fULL },
            { L_,  129, 0x0840dd5c30241af4ULL, 0x61c235c6664f30aeULL },
            { L_,  130, 0x8f8d5db6f19ae150ULL, 0x784319d5cd5982e4ULL },
            { L_,  131, 0x370fd36d426f5d2dULL, 0xbe61e6b8626ceeb7ULL },
            { L_,  132, 0x0d7f919a43863240ULL, 0xdc217a63fdccd718ULL },
            { L_,  133, 0x68b4a2c18fd23e61ULL, 0xafdc94642de59ef3ULL },
            { L_,  134, 0x030269b92f592af7ULL, 0x78669032c64c674fULL },
            { L_,  135, 0xbcaed45a6ecdadd8ULL, 0x01fc2a9ca02ffcd6ULL },
            { L_,  136, 0xa5c491554d8d8820ULL, 0xd7d387760ec142ebULL },
            { L_,  137, 0x3321886532e254c4ULL, 0xca41b0a7d04b2d95ULL },
            { L_,  138, 0x223d9074fd711ad4ULL, 0xc2d23ed9910387daULL },
            { L_,  139, 0x6a3ae7856cd882c1ULL, 0x8ee4697ff6b9a9fdULL },
            { L_,  140, 0xc192f29273e8354cULL, 0xdb837d1ad7420ce1ULL },
            { L_,  141, 0xfe488b9f84847789ULL, 0xda36447191d85e7fULL },
            { L_,  142, 0xef6eb5eb25e639b7ULL, 0x61862a7c64cfd52cULL },
            { L_,  143, 0x017805c97067bd44ULL, 0x7c3aec6d0fcd0b51ULL },
            { L_,  144, 0xf210a3f2be42bd00ULL, 0x39b0fc190388b51cULL },
            { L_,  145, 0xa30fe9625f9afaacULL, 0x501d7dd52ebea75cULL },
            { L_,  146, 0x43c42f97febf73d0ULL, 0x129f037058c9f01bULL },
            { L_,  147, 0x4a24ef231524fea3ULL, 0x7231c0421b2e7880ULL },
            { L_,  148, 0x5072623514bf0fa3ULL, 0xa9ee3318378a0a23ULL },
            { L_,  149, 0x5bf3f233af93a59fULL, 0x95da2d7368b876ecULL },
            { L_,  150, 0xa5c8b5e8c5191b1cULL, 0x21ddbf695ce23584ULL },
            { L_,  151, 0xd3c3abc03890c9f4ULL, 0x503cce0aa2dc2993ULL },
            { L_,  152, 0xd8e7ae1fe625ca3dULL, 0x5fb51e3400230e22ULL },
            { L_,  153, 0x09476002d80f210bULL, 0x0bdfa964e4458d3eULL },
            { L_,  154, 0x4475d63a09cedfdcULL, 0xf1104c979d23acb7ULL },
            { L_,  155, 0xb2c2ca43ef0ba23cULL, 0x841f452e0ffbb80cULL },
            { L_,  156, 0x860c27929aa4108bULL, 0x54f52d22589950f9ULL },
            { L_,  157, 0x7958eefec5b8baaaULL, 0x3f72c12fb46c902aULL },
            { L_,  158, 0xb69088f63463abb0ULL, 0xa537f21a28ce1df5ULL },
            { L_,  159, 0xc1572b6d4d839ba5ULL, 0xf709010c7b19ed06ULL },
            { L_,  160, 0x5a9c4ea7f8df8ed8ULL, 0x9f0209a16bba80e7ULL },
            { L_,  161, 0xdb442c1171131e71ULL, 0x8ebc5f5f1f7b1851ULL },
            { L_,  162, 0xa0cf997ae6f7257eULL, 0x7193d6ae1f1979e2ULL },
            { L_,  163, 0xe8c960e8148dca28ULL, 0x26f7781d4944e2b4ULL },
            { L_,  164, 0xdf8e61590f9f0464ULL, 0x04f822df1ee754e6ULL },
            { L_,  165, 0xae9da14db668562cULL, 0xaff50bc24173a778ULL },
            { L_,  166, 0x9ccea30c3e5e416cULL, 0xf365dbfdec6b8c30ULL },
            { L_,  167, 0xecd2e10254658e3aULL, 0xae157465c0db44faULL },
            { L_,  168, 0xa85bc71679e1317cULL, 0x5dfee04198048149ULL },
            { L_,  169, 0xcc6249ade61a8ac7ULL, 0x892d3721fa72901bULL },
            { L_,  170, 0x319bcd4397d41548ULL, 0x79c29d29c5cbc771ULL },
            { L_,  171, 0xa764c31ed4693b6eULL, 0x4fb077ad402317c5ULL },
            { L_,  172, 0x520882e23a6728f2ULL, 0xe6296bccb8902d0fULL },
            { L_,  173, 0x448357f2a1e8bc29ULL, 0xf7628ff3430b3ad4ULL },
            { L_,  174, 0xa296d3db83c64933ULL, 0x68bdc2973b766646ULL },
            { L_,  175, 0x06ca99a2a6dcd5ecULL, 0xebe503546c1b6fa8ULL },
            { L_,  176, 0x6ae51b21f082d934ULL, 0xc4ddcb8a94cf27b5ULL },
            { L_,  177, 0x7a06d3df82652c05ULL, 0x3ebd0e4d0f7fabe8ULL },
            { L_,  178, 0xc210b6cc7f735d01ULL, 0x9c1d3ce2b144386aULL },
            { L_,  179, 0x0df76a3f94e56166ULL, 0x77511c7fa04b809fULL },
            { L_,  180, 0xb997d77cb4bb529eULL, 0x4d81f89cf2327877ULL },
            { L_,  181, 0xf3ed26e84b540bc2ULL, 0x1a8c1ce4408096f2ULL },
            { L_,  182, 0xbd648a472b54bfb0ULL, 0x867565bd6d6c7436ULL },
            { L_,  183, 0x9b714fda8c15a96bULL, 0x6838273184a55d98ULL },
            { L_,  184, 0x9552ecdab9e447b7ULL, 0x561da846d15f2dd1ULL },
            { L_,  185, 0x48a68ae5e233603bULL, 0x84f5864cdabf7a3bULL },
            { L_,  186, 0xecff1fc31f49ff76ULL, 0x020edbc6d3278701ULL },
            { L_,  187, 0x708c93dcc18a8cdfULL, 0xffa6545d107c776eULL },
            { L_,  188, 0xc4381fff2e111fe9ULL, 0x5ce3e1da1be29f3aULL },
            { L_,  189, 0x66d4e1ee76375208ULL, 0x22ed72a43485094aULL },
            { L_,  190, 0xcc17c7371ef4ccedULL, 0x07869a0aadd45105ULL },
            { L_,  191, 0x86179fca80f73699ULL, 0x83fff0cb5e757079ULL },
            { L_,  192, 0x9af2a8252b69825fULL, 0xf42516d539ac6a11ULL },
            { L_,  193, 0xef81d0d34cf5b622ULL, 0x4131e397a814e855ULL },
            { L_,  194, 0xccfd026f6623af35ULL, 0x2f7a0cc9be1c912cULL },
            { L_,  195, 0xc53202595e639578ULL, 0x94c5ed75da3b47b3ULL },
            { L_,  196, 0x5adbfa891335f12eULL, 0x80ebadec02d995fdULL },
            { L_,  197, 0xbfacb9ab370d7e42ULL, 0xd2b758d85cb99e53ULL },
            { L_,  198, 0x2f3fb914f0f8b500ULL, 0xd29c6e9dfed2564bULL },
            { L_,  199, 0xa515c43684f50f6dULL, 0xbd22df5336dada35ULL },
            { L_,  200, 0x649d053962a47d8aULL, 0xdca96ebabb3c6dd8ULL },
            { L_,  201, 0x70d19bde7dbb0b26ULL, 0xa9f540c1250b4fb6ULL },
            { L_,  202, 0x569a7e8b2614d41bULL, 0x5df6a2cb8ded1b57ULL },
            { L_,  203, 0xb98ae9a984a07ba2ULL, 0x32330004da33981fULL },
            { L_,  204, 0x36982d23f882d6c3ULL, 0x197564a208d79609ULL },
            { L_,  205, 0xa2a12e01f2906e6aULL, 0x8721298a7773a188ULL },
            { L_,  206, 0xd3b1d41784625e88ULL, 0x15922432c1d0f2e8ULL },
            { L_,  207, 0x573182c64b1c654fULL, 0xff7446119849a008ULL },
            { L_,  208, 0x4c049aaa4b25a996ULL, 0xb290d2869a24755dULL },
            { L_,  209, 0x3fcf854a90a30495ULL, 0x81845dbd4d144de3ULL },
            { L_,  210, 0xb26a3a7232b10ecaULL, 0xc25bf5470e0e6ca4ULL },
            { L_,  211, 0x845e9ae36b26e004ULL, 0x397ed4517a963e18ULL },
            { L_,  212, 0xf7ec76423f93329bULL, 0x6a8bced9a5c82ecaULL },
            { L_,  213, 0xc3f7547c3694aa65ULL, 0x75c9d559d2738c4dULL },
            { L_,  214, 0x7916a62604e71a4dULL, 0xa774937273a43ba9ULL },
            { L_,  215, 0x0dbdeb232509f023ULL, 0x6881086e1b3082faULL },
            { L_,  216, 0x936b30e35821c0b3ULL, 0xee53f2ce7bae9e33ULL },
            { L_,  217, 0xda591cddded6026aULL, 0x7ea9322b852a510dULL },
            { L_,  218, 0x4251082b0f6ab05aULL, 0xeb4e3b8c0f716b63ULL },
            { L_,  219, 0xb8a9612f6e6d8f76ULL, 0x3b0567456ed39e2bULL },
            { L_,  220, 0xde8fd77e6b00c820ULL, 0x00785bdf6ec03d2cULL },
            { L_,  221, 0x9ee30a683a737e70ULL, 0xc941bd0be79a4fd4ULL },
            { L_,  222, 0x080f838b99413ffaULL, 0x1e904a80cb3570d1ULL },
            { L_,  223, 0xe99ae4327a8700e1ULL, 0xe05bf04db6bdadf8ULL },
            { L_,  224, 0xf561b181bcdae7f3ULL, 0x1bce73798f5e0727ULL },
            { L_,  225, 0x7c4575bc48e05697ULL, 0xdfcb0022d0c09166ULL },
            { L_,  226, 0x97ce50b60b0874e0ULL, 0x6ff13b655e3dc6e4ULL },
            { L_,  227, 0x3122862d3be11982ULL, 0x14c104d4e940799cULL },
            { L_,  228, 0xc52defcc3970fa6dULL, 0xab267953ec3d7a1cULL },
            { L_,  229, 0x7018a47ddbdf6373ULL, 0x4ea6d1c1632de5c0ULL },
            { L_,  230, 0x8b32e78c87a4cc38ULL, 0x707440cd3ae50d67ULL },
            { L_,  231, 0x72028d433d7d3a1bULL, 0x4162705d8bef090fULL },
            { L_,  232, 0x94f3bff72c094b12ULL, 0x60861670a26b99c8ULL },
            { L_,  233, 0x16fdcc27c1048325ULL, 0x65bc8a5fef052ec8ULL },
            { L_,  234, 0x6a689dae1e4788b5ULL, 0x78b3a136587e8167ULL },
            { L_,  235, 0xa0f58bf90d51aeeaULL, 0x735eed7d3a78b1e0ULL },
            { L_,  236, 0x586521d13f477083ULL, 0x77894d7a1f058015ULL },
            { L_,  237, 0x4c14943ce8e76aeaULL, 0xe9338a3288d47518ULL },
            { L_,  238, 0x41b40d93b9772dfdULL, 0x743ae526d0363311ULL },
            { L_,  239, 0x5700e4d1bc36c81fULL, 0x36d2893acf419764ULL },
            { L_,  240, 0x6cd7d1b4f656844bULL, 0xc3bc982245319e71ULL },
            { L_,  241, 0xa6f7282c42759e91ULL, 0x558e5cc916946b46ULL },
            { L_,  242, 0xcf0ec7d0e41d7128ULL, 0x103394bf602f8611ULL },
            { L_,  243, 0x178dc57b22e5e605ULL, 0xabe51116eae06e12ULL },
            { L_,  244, 0xdf865876eeb44991ULL, 0xb4adf9ebefabd826ULL },
            { L_,  245, 0x75c33c58bf59cadaULL, 0x80e98a144d0d93a4ULL },
            { L_,  246, 0x07bf2462b4d566e4ULL, 0x1a290dadb4a26913ULL },
            { L_,  247, 0x1c08faac1a1359eaULL, 0x38eca17d64bf1b85ULL },
            { L_,  248, 0x5515512566d33b85ULL, 0xb2bf559a2f29ea09ULL },
            { L_,  249, 0x111b4afd3da3d3dbULL, 0xc8506e0354e4b98bULL },
            { L_,  250, 0x42c9e647eacdde4fULL, 0x999494283768b935ULL },
            { L_,  251, 0x107b4215f80d4f70ULL, 0x0f6f093fc36d9eb9ULL },
            { L_,  252, 0x2bfc848ce10ddc4eULL, 0x6fc515b28fea2ec3ULL },
            { L_,  253, 0xb934f79883a8f36bULL, 0x2a22fe0900a48b43ULL },
            { L_,  254, 0xa90763db10cd0bb8ULL, 0xf8f1129afa7cac45ULL },
            { L_,  255, 0x1bd59aeac241bb6bULL, 0x954a8eb0c1f390d8ULL },
            { L_,  256, 0x66c7922424ab1661ULL, 0x8d014d2dd8c9c0a9ULL },
            { L_,  257, 0xb7117163fa595794ULL, 0xbe2a3e3ca200bfe0ULL },
            { L_,  258, 0xadb3b2de3cd5dfb7ULL, 0xad344a4e5143bb47ULL },
            { L_,  259, 0xd1f7f9e5a3634a02ULL, 0x67caf6722f1496b4ULL },
            { L_,  260, 0xdb23d6262208ac1bULL, 0x9f6ee3cdb9b0e0adULL },
            { L_,  261, 0x5869d55f2ac342f0ULL, 0xc9bfe5160a8623a9ULL },
            { L_,  262, 0x9dfce925c739951aULL, 0xf929a3a6ffc76b88ULL },
            { L_,  263, 0x4f3ba1ee21185228ULL, 0xccd73999d5ff6259ULL },
            { L_,  264, 0x2ddd3acbef1dd9beULL, 0x3b689297091241a6ULL },
            { L_,  265, 0xc64b33be4b31cea1ULL, 0xfd28415fc894bb0dULL },
            { L_,  266, 0xba1cc91084448c7aULL, 0x20f70eefec837021ULL },
            { L_,  267, 0xa657e84b4a99635dULL, 0xf0268675d9cf9c32ULL },
            { L_,  268, 0xbc405c1ab3606ec0ULL, 0x8c9936486a325f40ULL },
            { L_,  269, 0x1131d3c5b37df083ULL, 0xb77858209d3ca685ULL },
            { L_,  270, 0x3372636e7da61b06ULL, 0xc19265d905ad7c86ULL },
            { L_,  271, 0xe1e88e8f7ba6c51bULL, 0x6c219cd5d42c1f26ULL },
            { L_,  272, 0xc9f592989cd6387aULL, 0x7fb81a8db19383acULL },
            { L_,  273, 0xa54a34891177c03bULL, 0x83d3f75fb92a035dULL },
            { L_,  274, 0x2105295073a5a225ULL, 0xed31ca1e36dc8332ULL },
            { L_,  275, 0xfdbe822e511207cbULL, 0x1b67f63a19d909d0ULL },
            { L_,  276, 0x4b4e8330eddbc41bULL, 0x82e3db98f81e64e8ULL },
            { L_,  277, 0x9d57d952405108beULL, 0x8946f157d2f15250ULL },
            { L_,  278, 0xe151ffc4e36a5d94ULL, 0xe5891d4fd8e5d4f8ULL },
            { L_,  279, 0x0a2a0c3e6d6d0b2fULL, 0x779aa2894b43ba66ULL },
            { L_,  280, 0x6e6eb2ae886d72f2ULL, 0xc61d324ec3c50756ULL },
            { L_,  281, 0x9f6f98b7ada40fc8ULL, 0x15c53b14233f7099ULL },
            { L_,  282, 0x763b59aa9da6297bULL, 0x7c58b1f7840d0151ULL },
            { L_,  283, 0x99c909a249442e82ULL, 0xde5e0bf8ff44cb13ULL },
            { L_,  284, 0x17e7f1791d8035edULL, 0x4ac0c298b40d288dULL },
            { L_,  285, 0x6e2233518d3eb184ULL, 0x97baca042edf9858ULL },
            { L_,  286, 0xec226e2ee1c3d59bULL, 0x75aab3541eed0d2eULL },
            { L_,  287, 0x4b232aaa37f0ac64ULL, 0xabba7bfaec6e2c2fULL },
            { L_,  288, 0x192fc542b62aef81ULL, 0x45165db5393278caULL },
            { L_,  289, 0xb05ab40f7927d161ULL, 0x0fcc064cfb11a28aULL },
            { L_,  290, 0xd0deff49f6dae2bfULL, 0x80ab266d351360e7ULL },
            { L_,  291, 0xd04ba87f75d99f0cULL, 0xedbbfc3a3546607eULL },
            { L_,  292, 0xf720e85656e29e5aULL, 0x7d1d0460504de257ULL },
            { L_,  293, 0x6f0b4e768e24ad65ULL, 0x65060b9ae935fe8dULL },
            { L_,  294, 0xe8d91ef32dd03045ULL, 0xa7ec64aaf9b5677dULL },
            { L_,  295, 0x3b66aae21c960dbaULL, 0xe350c3ea44fc6019ULL },
            { L_,  296, 0xa406133b0533de17ULL, 0xa2ba01a1bf461c01ULL },
            { L_,  297, 0xb24f204878bb6d14ULL, 0x1f2f5db207ae3ac4ULL },
            { L_,  298, 0xdc536577930369a3ULL, 0xa72510402550f18bULL },
            { L_,  299, 0xd9d3407cbe5e0443ULL, 0xa7f831c2d6ee424bULL },
            { L_,  300, 0x4d37bc34b6864522ULL, 0x3d2b05f03f8eb7afULL },
            { L_,  301, 0x04721d3bb325ed46ULL, 0xd34f6fe07de51b19ULL },
            { L_,  302, 0x8743600107c6109cULL, 0x7e02002533702009ULL },
            { L_,  303, 0x95c4be8ac99995b8ULL, 0x8d53f4f303056015ULL },
            { L_,  304, 0x95fa39e160d70e18ULL, 0x13966305cacb2f8bULL },
            { L_,  305, 0x7a4c59feed0f7100ULL, 0x7b1f1118a9f1ecafULL },
            { L_,  306, 0xe05aa90b736c218dULL, 0xf4bc929f312cef6eULL },
            { L_,  307, 0xb26e60f5bffb37e7ULL, 0x6b19fab3d9ea0adfULL },
            { L_,  308, 0x0ced2da80deb9e3cULL, 0xf4d3c1c36bff7d3cULL },
            { L_,  309, 0x5b10a3d5cea4090fULL, 0x608c54cc24810b07ULL },
            { L_,  310, 0x32e0a9e70f3cb10aULL, 0xaf5ce26c05f1cb12ULL },
            { L_,  311, 0xbdcb6515be469509ULL, 0x5e0b0e627d90e7a6ULL },
            { L_,  312, 0xef25563ffa231851ULL, 0xb6bb00b309858fa3ULL },
            { L_,  313, 0x3cbc97bbce9131cfULL, 0xc976192d0fbfca9fULL },
            { L_,  314, 0xe4f20b837cfd65faULL, 0xccfb9bf6b06703a1ULL },
            { L_,  315, 0x15f2226aaca87a09ULL, 0x34cdfaace8dae9ebULL },
            { L_,  316, 0x84b57b2474f338efULL, 0xe54eefd04503f5baULL },
            { L_,  317, 0xdd31d8a998571b37ULL, 0x194118264d66b2acULL },
            { L_,  318, 0xe80db11ef3a85835ULL, 0x8d3da8656e47cd18ULL },
            { L_,  319, 0x2f19e7aa45f9856aULL, 0x3dcee9a72466a7a8ULL },
            { L_,  320, 0xb63b16ea8074a6a9ULL, 0x4d7328e6dd2f2744ULL },
            { L_,  321, 0x2b39977f21cb4afdULL, 0x1cb3598762aefd4eULL },
            { L_,  322, 0x33c2b96aacedd1d2ULL, 0xe50238f3dba49329ULL },
            { L_,  323, 0x0e98aef826388da9ULL, 0xe1ac69a0559a9cd8ULL },
            { L_,  324, 0xe3ab9318ff694647ULL, 0xe5ad4e17c976103bULL },
            { L_,  325, 0xfc16d3d1c61dad13ULL, 0x53f32567b00f7814ULL },
            { L_,  326, 0x74284b958b6f365cULL, 0x75b4a69bd9dfbc6aULL },
            { L_,  327, 0x2e9ff9cb7fc5bd5cULL, 0xdb4d0fe20fe6d5ecULL },
            { L_,  328, 0xb265d157d36fab19ULL, 0xde70d1ef089d9631ULL },
            { L_,  329, 0xdbacd9bbbb3e0930ULL, 0x98b30026b560588fULL },
            { L_,  330, 0xc6a71df01a156f5bULL, 0x8e249bb62c209606ULL },
            { L_,  331, 0x82afe8c152c0ce8eULL, 0x61f6620ba2a1ad66ULL },
            { L_,  332, 0x0ca7e6bb09f406d0ULL, 0x5db7ee6cc99eb5b0ULL },
            { L_,  333, 0x7a894540b250cc61ULL, 0xa1e980747728cdfbULL },
            { L_,  334, 0x3af1b9cfae4ad2dbULL, 0xb2d7592333ce561bULL },
            { L_,  335, 0xfea5d90c0db2baabULL, 0xbba31575da176093ULL },
            { L_,  336, 0x90738d9ccc8c2453ULL, 0x19faba831d48ea6dULL },
            { L_,  337, 0x919dae7795c1a9c9ULL, 0xc54dd23605cd7be9ULL },
            { L_,  338, 0x577730ae26232aceULL, 0xacca2aa5e5eab7e1ULL },
            { L_,  339, 0xc53529c9f6095a80ULL, 0x7cd43e04650682f9ULL },
            { L_,  340, 0x5c6fca441df6bb7bULL, 0x9738e831ee34fca7ULL },
            { L_,  341, 0x594c3d2f024b66e1ULL, 0xa39008d770aabe10ULL },
            { L_,  342, 0xc6f6b0feeb000db4ULL, 0xe4b72e97f1302010ULL },
            { L_,  343, 0x1cfb3699325e5d4eULL, 0x131d118825f09d8eULL },
            { L_,  344, 0x22ef964a54b48d7aULL, 0xa918c884b218672eULL },
            { L_,  345, 0x24910a58edfc8484ULL, 0xf9e6bb609339366fULL },
            { L_,  346, 0x206deacf3536ed18ULL, 0xce6f8f5ee9fe8045ULL },
            { L_,  347, 0x5bff186feeb8b084ULL, 0xd1a6078e33dab510ULL },
            { L_,  348, 0x8183f97b9a827fcfULL, 0xcf4b2f0bbc7170a4ULL },
            { L_,  349, 0x13051fbf6a7f254cULL, 0x0fa6480fe69aa7a5ULL },
            { L_,  350, 0x490100582ad94358ULL, 0x82b8c9fc7f4e5354ULL },
            { L_,  351, 0x91d47a8a9b0c1fd5ULL, 0xd0dc44c8d57fd219ULL },
            { L_,  352, 0x0fe320b1c8165e2cULL, 0xd136f9f0e81660d5ULL },
            { L_,  353, 0xd9e4f742a886f029ULL, 0xe7b151c2d7eeb283ULL },
            { L_,  354, 0xf3d3421e89f8227dULL, 0x2f6de8d6b18a9a07ULL },
            { L_,  355, 0x058ac04861cfb457ULL, 0xe0ac9826e79307b3ULL },
            { L_,  356, 0x7855e93c0e92d045ULL, 0x6e9547daca973628ULL },
            { L_,  357, 0xbdb2769b24125abdULL, 0xec396aab05364d1fULL },
            { L_,  358, 0xdbef240746e9eacdULL, 0x5ebb95d24f5a83d3ULL },
            { L_,  359, 0x3026bace6287cf93ULL, 0x139bb379fe03616aULL },
            { L_,  360, 0x36fd3aecfac294e5ULL, 0xa14207e0d23f2ee8ULL },
            { L_,  361, 0x6abb86ba662487a8ULL, 0xdc75d48f0651ad94ULL },
            { L_,  362, 0xefb445da17683e99ULL, 0x0a47577389509aa2ULL },
            { L_,  363, 0x0389e3b9ad3a6482ULL, 0x4d3f58a24f3f5872ULL },
            { L_,  364, 0xea01057eb81791ccULL, 0x414852f08fd8f24fULL },
            { L_,  365, 0x3839401ed835be6cULL, 0x4f2648c17f4312bbULL },
            { L_,  366, 0xeb11bb85753ff6dbULL, 0x63d63cc3a5dd282dULL },
            { L_,  367, 0x6e0ea8f505ac5f69ULL, 0xab6dde4cfd911a7cULL },
            { L_,  368, 0x2ea1a25d62e0e408ULL, 0xec944c7d4b9e4475ULL },
            { L_,  369, 0x08b66a896841154eULL, 0x030064e20c43c6c1ULL },
            { L_,  370, 0x3e3cad03975accc5ULL, 0x16fcaaeab8d69daeULL },
            { L_,  371, 0xf031340d922af633ULL, 0x00855b6f0adf24cdULL },
            { L_,  372, 0xf96637d354a4c28dULL, 0x1db810b6fd8b8f01ULL },
            { L_,  373, 0x2de523c4037dd230ULL, 0xcada96dd209075f9ULL },
            { L_,  374, 0x1aca409a61833725ULL, 0x8a5f33a2337c66c4ULL },
            { L_,  375, 0xd1a9037f89904852ULL, 0xa7d7e3120dfdc787ULL },
            { L_,  376, 0xb9ae7c168e449537ULL, 0x390b922187baf51eULL },
            { L_,  377, 0xc4f76d76daa28db3ULL, 0x17e765fb939aa352ULL },
            { L_,  378, 0xe19a4e396e4b675eULL, 0x075366b3db1e2e49ULL },
            { L_,  379, 0x53f611fede254125ULL, 0xdcf0ba1457a87952ULL },
            { L_,  380, 0xf443caa174f9e8a5ULL, 0x3ad985fe2f00ba22ULL },
            { L_,  381, 0x675c4184265a14b8ULL, 0x979f6275e45bf666ULL },
            { L_,  382, 0xad678b94dfd9cdc5ULL, 0xe25ca732860c5bbeULL },
            { L_,  383, 0x501db35257fe640cULL, 0x05f25e5fcae7cd5eULL },
            { L_,  384, 0x9e4c0ad95eb42ad7ULL, 0x7fb2e89c6300bd6eULL },
            { L_,  385, 0xeb2d403f1e814394ULL, 0x42756c237340c1fbULL },
            { L_,  386, 0xf24220d2700bc769ULL, 0x151dfa6d750edc37ULL },
            { L_,  387, 0x6ab21fefa9849b45ULL, 0x382f59f997ec4a74ULL },
            { L_,  388, 0xe10d68892c49b0c0ULL, 0x15a8b789199dcc23ULL },
            { L_,  389, 0xbb05357f5cf7a04fULL, 0x1dceca63121f985cULL },
            { L_,  390, 0x16093acaa0bac7dfULL, 0x6907a305b8379b1eULL },
            { L_,  391, 0xa4bbae12cde91e7bULL, 0xaf74aa67bd69cd97ULL },
            { L_,  392, 0x21afb4652239024aULL, 0x368c801b7b85e070ULL },
            { L_,  393, 0x025d5965e91f4654ULL, 0xdc35b31684931c83ULL },
            { L_,  394, 0xd3b39218d78f4dc7ULL, 0x3d3aaef882cd7484ULL },
            { L_,  395, 0xbf50cc487cbb70c4ULL, 0xd392082bde06bf8dULL },
            { L_,  396, 0xf8398e2f011dc75dULL, 0x843806668c474e6eULL },
            { L_,  397, 0x9791182d4ce519b0ULL, 0x3c80a36e7cdfa3f2ULL },
            { L_,  398, 0x9a014628708471f2ULL, 0xb9440580ba734e3fULL },
            { L_,  399, 0x58587a0b3e330c37ULL, 0xf44e21fbf7dcca16ULL },
            { L_,  400, 0x859861ba3c406040ULL, 0xf55d6a8363258f81ULL },
            { L_,  401, 0x2c5560582538867fULL, 0xc2a885724f77e9c5ULL },
            { L_,  402, 0x70f8556293413773ULL, 0x5ab034038bd54b55ULL },
            { L_,  403, 0x642df5110cacba72ULL, 0x035fe01fd9623cc6ULL },
            { L_,  404, 0x840455eb6c749134ULL, 0x95632c10c4a951beULL },
            { L_,  405, 0xfd5947aec3502910ULL, 0xfc3f953c710f9361ULL },
            { L_,  406, 0x04ffc0760d6ac2f8ULL, 0xa69fa5347f1e85e8ULL },
            { L_,  407, 0x66c96d982c7e6a35ULL, 0xcf66760335d3bf63ULL },
            { L_,  408, 0x527c184645f52322ULL, 0xe6f7ae24489cb08fULL },
            { L_,  409, 0x371c252947bbab1bULL, 0xbed6f87d74e718c1ULL },
            { L_,  410, 0xf638afeaf51f97c0ULL, 0xa762234cd2bb1ceaULL },
            { L_,  411, 0x80ceb667d3a4becaULL, 0x3c6188c70c8ebf5dULL },
            { L_,  412, 0xc30185adf4c872d4ULL, 0x499ed4da1bd090afULL },
            { L_,  413, 0xe9cd32d72cf701fbULL, 0x397a58bbdfbfd6efULL },
            { L_,  414, 0x9a5e6bec8835b83aULL, 0x884ff593efd08064ULL },
            { L_,  415, 0x516cafd207cce162ULL, 0x63d22ad5b20bf879ULL },
            { L_,  416, 0xd5d92cbdfdbef289ULL, 0xf897714cb3198e17ULL },
            { L_,  417, 0xb6a0986f9ffde2f2ULL, 0x6b22cdc518c4a1f2ULL },
            { L_,  418, 0xf77a4419a6a84e5eULL, 0xeaab26a379c4f9eaULL },
            { L_,  419, 0x91df8256b4f7c377ULL, 0xdcf63440fb117577ULL },
            { L_,  420, 0x3c5b6c76398f3ba9ULL, 0xc27fe65a248dd936ULL },
            { L_,  421, 0x92c10c1cdd9d98b7ULL, 0xbd3581945d054ad4ULL },
            { L_,  422, 0x09311c3a4210bbc3ULL, 0xea8fb638418d95afULL },
            { L_,  423, 0xc08149c18892063bULL, 0x63e1a83f52d99560ULL },
            { L_,  424, 0xc8d00648434b804eULL, 0x0201e5f2d020173bULL },
            { L_,  425, 0xeb81106b7048a915ULL, 0x9e1c487dc6d809ecULL },
            { L_,  426, 0x68cdb0a0ad52f5dcULL, 0x0d31030e54673c36ULL },
            { L_,  427, 0xe52b695fe9d6d312ULL, 0x0d147cce7163f4deULL },
            { L_,  428, 0x6fd84f9f9be8b1d1ULL, 0xc8d7441784a8f746ULL },
            { L_,  429, 0x0d40cdc34b8ad269ULL, 0xa1ebd1f918dc23a7ULL },
            { L_,  430, 0x339509ef02ee10e6ULL, 0x1526652fbc5ade97ULL },
            { L_,  431, 0xa7bf9aad083aa507ULL, 0x5312cff3f6c45109ULL },
            { L_,  432, 0x188dec5ad9b7a4f9ULL, 0x565a3007152bd07bULL },
            { L_,  433, 0x2a76fa17133f7d04ULL, 0x80ef64d35a4aff25ULL },
            { L_,  434, 0x3b0271c69cfb05e5ULL, 0x498f95235756d530ULL },
            { L_,  435, 0x7f5ff9ed63f96a38ULL, 0x19f62d7957788770ULL },
            { L_,  436, 0x792ab640214eb9edULL, 0xfd1a3d5bc7984f60ULL },
            { L_,  437, 0x704ce83ee7490ee7ULL, 0xad8e0589a843572bULL },
            { L_,  438, 0xb5263bfa0008c1f0ULL, 0xc2ff0727be04bdedULL },
            { L_,  439, 0xb60dbd40d1dc3084ULL, 0xc941e053a614b443ULL },
            { L_,  440, 0x96bd234650e76384ULL, 0x4e70b728e282ab92ULL },
            { L_,  441, 0x0c34fc6f3ec9b5c7ULL, 0x189f08d9cea4c1ddULL },
            { L_,  442, 0xc1fc3c2df52babe1ULL, 0xc93845b1e4553ba1ULL },
            { L_,  443, 0xa8b8c90f5734b095ULL, 0x1905aeaab00d17d7ULL },
            { L_,  444, 0x9695b56b6a8cc2d3ULL, 0x050c1183836c7253ULL },
            { L_,  445, 0x370f28ca0981217cULL, 0xb8cfc88fdc630833ULL },
            { L_,  446, 0x27e5d24cce511559ULL, 0x89390a1312bd15f5ULL },
            { L_,  447, 0x87728765b32b9a07ULL, 0xfeb057bf82fba43eULL },
            { L_,  448, 0xfe157d36e7eb392cULL, 0x53fdeb135f4a4e61ULL },
            { L_,  449, 0x9ece070480bf8f2dULL, 0x3e317949ff9d52d8ULL },
            { L_,  450, 0x1c9b679dcd150e97ULL, 0xef3a06c363f67686ULL },
            { L_,  451, 0x2263a5ccc8959b86ULL, 0x622e682009ebe1cfULL },
            { L_,  452, 0xdef93304f40228d0ULL, 0xe0fda39c51bd0ba5ULL },
            { L_,  453, 0x6867832ad6458155ULL, 0x1eca00940f6d0214ULL },
            { L_,  454, 0x47b4371b3d37bd0aULL, 0x2a7e4f6468574f0eULL },
            { L_,  455, 0x1dc030acd6697eb1ULL, 0xdd16d371161b86e6ULL },
            { L_,  456, 0xc3b5d3a0afa35420ULL, 0x1408832b33ae5c63ULL },
            { L_,  457, 0xe9ed6d1cd24b0ae9ULL, 0x50e9827a103606ccULL },
            { L_,  458, 0x7dfa686e8abd9d49ULL, 0xa6c59b805b6ef57fULL },
            { L_,  459, 0x05cfba738a5dfac6ULL, 0x8c43c0e78dfe7f92ULL },
            { L_,  460, 0xf8f8d229b538df53ULL, 0xba6c00610dfca179ULL },
            { L_,  461, 0x04ce0651ab170c34ULL, 0x264232b0e644dbd5ULL },
            { L_,  462, 0xf41a2f1a1c5e577cULL, 0x4265f18de1c35e55ULL },
            { L_,  463, 0x713309a734f8d097ULL, 0x31b16cb1b33e7d91ULL },
            { L_,  464, 0x4e305e05214298d0ULL, 0x51ad7d6e6236bfc8ULL },
            { L_,  465, 0xc8934cff30e2bbd2ULL, 0x7713c9d9cf5a5298ULL },
            { L_,  466, 0x7b8bba70d967cc4cULL, 0x57278816f4ec535eULL },
            { L_,  467, 0x4c3e76be61798a93ULL, 0x9d443e39ce3736bcULL },
            { L_,  468, 0xe7eaf479535b61b8ULL, 0x481e82ca63194422ULL },
            { L_,  469, 0x13843e4df4683862ULL, 0xc3116284cf5f1ed3ULL },
            { L_,  470, 0xcf334451837c42b1ULL, 0x8812467d21f09c94ULL },
            { L_,  471, 0xe1b1494585419da2ULL, 0x7ea275e9f2cca6a2ULL },
            { L_,  472, 0xa656d5d13438dffeULL, 0x057f3b88457d4c30ULL },
            { L_,  473, 0x2b2e70b4bb740cd3ULL, 0x9a66b6f762de9c6cULL },
            { L_,  474, 0x8268f87574462f65ULL, 0xe8d2168a43d707c9ULL },
            { L_,  475, 0x4500d9bed4efdd4aULL, 0xa3a91b926e3bc611ULL },
            { L_,  476, 0xab31f41a6e67a822ULL, 0x7136ca96f24a9473ULL },
            { L_,  477, 0x7e3dcd6a727c6d69ULL, 0x226c424ec30a8af2ULL },
            { L_,  478, 0x6f4e12b1f33805b9ULL, 0xa567b553eab0e336ULL },
            { L_,  479, 0x46923f54a9178518ULL, 0xba5411b96bc9dbb0ULL },
            { L_,  480, 0x8d3e9406cff8fa17ULL, 0x2e5b28329365a986ULL },
            { L_,  481, 0x02b48a1d4d5ec304ULL, 0x4653a1ea03c08972ULL },
            { L_,  482, 0x14a919f92510a863ULL, 0x833088d4120d420aULL },
            { L_,  483, 0x381a63d1ca4622dbULL, 0x307639901ebd1ae2ULL },
            { L_,  484, 0xb68be4475e629f2eULL, 0x6f315a49f0c7057bULL },
            { L_,  485, 0x7ff230ec6bc7482fULL, 0x3fbbec35439bf294ULL },
            { L_,  486, 0xe21c7ebfa2679bfbULL, 0xf9a9cb6b04ec58d3ULL },
            { L_,  487, 0x9ab8062bdbb0dbb5ULL, 0x24faabfee3951cb5ULL },
            { L_,  488, 0x71a380afe6561da1ULL, 0x1ad71d0d12ec2df7ULL },
            { L_,  489, 0xa025da2a0f02e388ULL, 0xfc55d0289e9df777ULL },
            { L_,  490, 0x2d974b3763ea3cbaULL, 0xf17938f94bddf024ULL },
            { L_,  491, 0x73530d69aef0fc58ULL, 0xf5673fc4aa9f86f3ULL },
            { L_,  492, 0x788a79bb976ece6aULL, 0x070ea2b08285192fULL },
            { L_,  493, 0xf33fb307bd44d6ddULL, 0x466f8122cdc4087bULL },
            { L_,  494, 0x426119a86c0fb1e6ULL, 0x990f6e85379c941dULL },
            { L_,  495, 0x0c35b328a51e9ddaULL, 0xd1cae65ff2fe6a02ULL },
            { L_,  496, 0xf18d9084c7fb335aULL, 0xd5a48f8c06a75615ULL },
            { L_,  497, 0xfaa4c1a6ab670d9aULL, 0x2d085fc66cb605a7ULL },
            { L_,  498, 0x7d60d030d989e72aULL, 0xea8289e5c15114e6ULL },
            { L_,  499, 0xcb18dd535e89aa1cULL, 0xc1e4b97c14f0e4f2ULL },
            { L_,  500, 0x874973cb00c29434ULL, 0xe30b17a422e091adULL },
            { L_,  501, 0xb987d7fc70f80eb4ULL, 0x2fe149e8518537faULL },
            { L_,  502, 0xff8f3ce9aaefdfdeULL, 0x1ecb849e49c86190ULL },
            { L_,  503, 0x62e6399d3cdb91a2ULL, 0xb339967b604b464fULL },
            { L_,  504, 0xbaf1035a69444876ULL, 0xd0f1a05442e87521ULL },
            { L_,  505, 0xcd02535e84114456ULL, 0x9a7801e058a84cd3ULL },
            { L_,  506, 0x1e652f73c77d294dULL, 0x431fb6020c2bf9c4ULL },
            { L_,  507, 0xa0e45bad8142f2e7ULL, 0x53128478b10b651cULL },
            { L_,  508, 0x6b9301ae97cfe632ULL, 0xbaa2fff5d3d3e683ULL },
            { L_,  509, 0x01b505e9d3e676afULL, 0x155cc46cc1ecb3e5ULL },
            { L_,  510, 0x65b8573208d13844ULL, 0x3de66c381bb17134ULL },
            { L_,  511, 0xbe0ecb4d0218dfd5ULL, 0xc7c51e72a1437d8bULL },
            { L_,  512, 0xb3d4d79e826bba8dULL, 0xc62c5c84f62abb5eULL },
            { L_,  513, 0x154b2a4e57b6281cULL, 0x509c2ceff04b9387ULL },
            { L_,  514, 0x5a16db1b93a50948ULL, 0xb7177b99033a7161ULL },
            { L_,  515, 0xce450b61bb802a0cULL, 0x27d37f4cf9432685ULL },
            { L_,  516, 0x3c28ec2317fd2d64ULL, 0x53be6e1249604e92ULL },
            { L_,  517, 0x29c1407d74420c16ULL, 0xa3bf01dd05a3ec59ULL },
            { L_,  518, 0x5142d80ea4336b43ULL, 0x285ba382e67b7698ULL },
            { L_,  519, 0x0fea793f517547f9ULL, 0x1c4e8f8f71b18603ULL },
            { L_,  520, 0x0414c96c25c1b596ULL, 0xb77049c44b142766ULL },
            { L_,  521, 0x1feb9fb7d7500633ULL, 0xea852f12370e539eULL },
            { L_,  522, 0xa8de8d03b1ee4f1eULL, 0x8fa624ac26c4a72dULL },
            { L_,  523, 0x9f3d67231910ebcaULL, 0x1ad307c663b3a585ULL },
            { L_,  524, 0x07d48a3e3a222ecbULL, 0x2b0b7dc779bd2cdaULL },
            { L_,  525, 0xf80462afaeb5b113ULL, 0x83ec3bac7329f48cULL },
            { L_,  526, 0x57084647129dd362ULL, 0x814495d900495863ULL },
            { L_,  527, 0x8d66692a9bfe4efbULL, 0xcf00b5d018d66ecdULL },
            { L_,  528, 0x742802ae6d0eac47ULL, 0x31fc9c9abab1d031ULL },
            { L_,  529, 0x696e7648a963fdd0ULL, 0xcbd502a702848c31ULL },
            { L_,  530, 0x88eb95b956c54a68ULL, 0x63887a4c97da5282ULL },
            { L_,  531, 0x7efda09982e76b21ULL, 0x2549cd7b1a12e158ULL },
            { L_,  532, 0x822764331d487914ULL, 0x4c0e80f6ff08dd5eULL },
            { L_,  533, 0x80b9dc0651a17723ULL, 0x810a325e809ca328ULL },
            { L_,  534, 0xe70a93552e5e7468ULL, 0x10ec96e2232dd558ULL },
            { L_,  535, 0x33c32fb31377825fULL, 0x1a94312ca087ba4aULL },
            { L_,  536, 0xa54d2e065a18c769ULL, 0x466f11da488ac6e7ULL },
            { L_,  537, 0x8f4e6e29ba92121dULL, 0x114c621ac4bc0d56ULL },
            { L_,  538, 0x5c0111b122431618ULL, 0x7cdded89c72b3216ULL },
            { L_,  539, 0xa710245d2b36cd9aULL, 0x888680fef4c35ed3ULL },
            { L_,  540, 0x3e6d00b259a143bbULL, 0xdb67f78ecb4e03e6ULL },
            { L_,  541, 0x167c7e85518ea17eULL, 0xeb86cd86fd20c5f1ULL },
            { L_,  542, 0x97269ca273b6c1c8ULL, 0x94e577c70fc30442ULL },
            { L_,  543, 0x7deaecc09a96daf3ULL, 0xab6bd69a83060ae3ULL },
            { L_,  544, 0xd7c02932756a1e3aULL, 0x43be3e30a77058ebULL },
            { L_,  545, 0x19f5e7175eefff36ULL, 0xc9f6b969ec12f524ULL },
            { L_,  546, 0x8ad29de6f0caa7c7ULL, 0x413692b69ac4fae6ULL },
            { L_,  547, 0xcfba7840da275927ULL, 0x2b58c01e2a70bfd2ULL },
            { L_,  548, 0x7f1a5a63ec31e03aULL, 0xe3a053a19c4b5014ULL },
            { L_,  549, 0xee606d787949f0b5ULL, 0x707e4a5122c498faULL },
            { L_,  550, 0xd77be5a0ca8a9354ULL, 0xcbb994e62556f90fULL },
            { L_,  551, 0x915afba034aad7eeULL, 0x1a471452847d94c3ULL },
            { L_,  552, 0xa9b72b8c7f253c92ULL, 0xfc73828c6e79baa1ULL },
            { L_,  553, 0xefa6acb2b7abb0d9ULL, 0x5f7aba900868817aULL },
            { L_,  554, 0x43b768b54e8ca30aULL, 0x609206decd0a5b91ULL },
            { L_,  555, 0xc82518c6dae42903ULL, 0xf6b7e9f2a2d1524bULL },
            { L_,  556, 0x03d641b639b157e0ULL, 0x7108f7ad4333856aULL },
            { L_,  557, 0xc3d5dba3f14b5f3dULL, 0xfd33fda8a1c1ddf0ULL },
            { L_,  558, 0xe458aa70e1bf425dULL, 0x655413a571a87304ULL },
            { L_,  559, 0x321b4f9db8707d4dULL, 0xb4404dd10f14bbdcULL },
            { L_,  560, 0xeee18b9b4b081f6bULL, 0xe648ee1ae5c958aaULL },
            { L_,  561, 0x68b5d42ffc0233c9ULL, 0x432da0961bcc5deaULL },
            { L_,  562, 0xe26f6fa5be05d0beULL, 0x87a854d88c6afe20ULL },
            { L_,  563, 0xc7d098ac34bc99b3ULL, 0x809d084d13a4f5c0ULL },
            { L_,  564, 0xd0a67d8c968cc6adULL, 0xf298d5c0344fb288ULL },
            { L_,  565, 0x1335dc91c78c4024ULL, 0x732dd930d0b1f3b6ULL },
            { L_,  566, 0x3afd203c8f14f409ULL, 0x6fef764f5b700257ULL },
            { L_,  567, 0x514e13d24dc1bbfbULL, 0x763e4a79f5aeec11ULL },
            { L_,  568, 0x89d0b4cec1088bb2ULL, 0x6a2c3806946a3186ULL },
            { L_,  569, 0xbb2949a898fdbc4cULL, 0xcad9a5d4482b9468ULL },
            { L_,  570, 0x098d57c747285fa9ULL, 0x7384257e376a7104ULL },
            { L_,  571, 0x0b2403ba263161deULL, 0x32fdfe516bd7d8cbULL },
            { L_,  572, 0xa9f2ee488f8e1a1cULL, 0x43910e2813067347ULL },
            { L_,  573, 0xcbf473ed1fe1953aULL, 0x296eb6751e29aa71ULL },
            { L_,  574, 0xbba1bf355bda161bULL, 0xe1b4135496d67b81ULL },
            { L_,  575, 0xe944f96d16280c86ULL, 0xaa4f2f86155c672fULL },
            { L_,  576, 0x0254e3ed7f15c744ULL, 0xd1e42f55b44fd85dULL },
            { L_,  577, 0x5bad43631196450fULL, 0xc3e04fde69437128ULL },
            { L_,  578, 0xb93e6557d2fc7b6dULL, 0x81acc80723a566d7ULL },
            { L_,  579, 0x32a511c27fec152aULL, 0x88422f8ea88d0651ULL },
            { L_,  580, 0xfd7989ddccde50e2ULL, 0x2cbf6ed1a062e11aULL },
            { L_,  581, 0xa65fd674d028b7d1ULL, 0x12ef80ecfb0b0839ULL },
            { L_,  582, 0x7cf550f19bb47060ULL, 0x52f2fb8cd44f7a41ULL },
            { L_,  583, 0x7adc769bff9da98aULL, 0x2758ac2431bac94fULL },
            { L_,  584, 0xdeb9f17334be24a8ULL, 0xac4242bddbee7f18ULL },
            { L_,  585, 0x1017ecec312798b2ULL, 0xce3bba53e46a7c43ULL },
            { L_,  586, 0xe0af938b5edad58fULL, 0x63bd803c62298200ULL },
            { L_,  587, 0x851c18c608328093ULL, 0xefaaa6b8264ca0a2ULL },
            { L_,  588, 0x1f1fe53dfb3486b0ULL, 0xc07107cd5cac7d29ULL },
            { L_,  589, 0x24ce4de3b763304fULL, 0x6c467177b18c40b6ULL },
            { L_,  590, 0x53626bcc24511a2bULL, 0xe0832f53e1eece60ULL },
            { L_,  591, 0x7d026143ef29ee4fULL, 0x5904d41f0ba65a7bULL },
            { L_,  592, 0x14bf185d0484b26aULL, 0x03521ae8e2635ec9ULL },
            { L_,  593, 0x6e8653453392623fULL, 0xda659aee1041c7deULL },
            { L_,  594, 0xd59afe516332a5deULL, 0xd3c211b1d8a54153ULL },
            { L_,  595, 0x661dc78b1bdc21dfULL, 0xd392df49a5b379daULL },
            { L_,  596, 0xca6b5c195bcc54f0ULL, 0xe60e6227e0c79b3cULL },
            { L_,  597, 0x94d7943cd0d4dcc9ULL, 0xc8635519af702b8fULL },
            { L_,  598, 0xf737c1f668bda0bcULL, 0x5950773c832fe5b0ULL },
            { L_,  599, 0xf314e06af6daed2dULL, 0x2ea13227e6531242ULL },
            { L_,  600, 0x91566f6964c79d47ULL, 0x51e3d55ddbc7873aULL },
            { L_,  601, 0xa8dc62fb353f0291ULL, 0x829b4562dc52031aULL },
            { L_,  602, 0x95723a6a4ca03143ULL, 0xa58af004abfd6051ULL },
            { L_,  603, 0xcaac1d2a1627bf75ULL, 0xbf8651b814564af5ULL },
            { L_,  604, 0xd888c9526168dcc5ULL, 0xd4edb63b628d0c21ULL },
            { L_,  605, 0xb545ae452d7ccfecULL, 0x4deaaee1d2b6de6eULL },
            { L_,  606, 0xd8a5012e76549fdbULL, 0x90d981296f45006aULL },
            { L_,  607, 0xac53fa69a849d38bULL, 0x568d0fff45c90419ULL },
            { L_,  608, 0xb0c4e61eb30d601fULL, 0xa005d7c31a8fef0bULL },
            { L_,  609, 0x42d0394698bf9660ULL, 0xe386ddd57092526cULL },
            { L_,  610, 0xda0850d39f8a62e8ULL, 0x6a7ed06ddb794589ULL },
            { L_,  611, 0x4f8853cc670bc206ULL, 0xfa1ecece2b241b40ULL },
            { L_,  612, 0xb3fd37a64f0a51cdULL, 0x28ac48966104eaf4ULL },
            { L_,  613, 0xd392b7dacc35d61cULL, 0xa1b8f7e7a0e97e06ULL },
            { L_,  614, 0x2271766e73c08291ULL, 0xfde6ae88ead56c10ULL },
            { L_,  615, 0x7bcfcf55de6add2fULL, 0x02f1b728aa77ab31ULL },
            { L_,  616, 0xcfc55a71957530dbULL, 0x007e017e3a09da4cULL },
            { L_,  617, 0x92bca51068f4c979ULL, 0x89add55ba0c810b1ULL },
            { L_,  618, 0xbd2145ebe2bfd6bfULL, 0x1a10173b04bc3a40ULL },
            { L_,  619, 0xce56d200f30badb8ULL, 0x97fbde8c793ddca7ULL },
            { L_,  620, 0x74a4bbc9ad821db9ULL, 0x64de3407c2d495f8ULL },
            { L_,  621, 0x82adad89ad3e3143ULL, 0xeed9133fcc25e519ULL },
            { L_,  622, 0x18721488d7dd7101ULL, 0xe7f093000d9c3735ULL },
            { L_,  623, 0x52b39878fa5317c1ULL, 0xb017e39ac4100aebULL },
            { L_,  624, 0x2e9e3a0f4481f534ULL, 0xe9b56ca96ba061faULL },
            { L_,  625, 0xa5525a45feb78081ULL, 0xd9dca6273b0b7cb2ULL },
            { L_,  626, 0x19361a1d8005102bULL, 0x2e0613df87872c59ULL },
            { L_,  627, 0xec54e646b4179accULL, 0xec7854967d82e950ULL },
            { L_,  628, 0xf24a8dd82f7fd6faULL, 0x7b087f108c55560eULL },
            { L_,  629, 0xc0bf49a23288fb70ULL, 0x1204d267d9c8b14bULL },
            { L_,  630, 0xa8c3b85431f1efcfULL, 0x7be983b53cd13991ULL },
            { L_,  631, 0x8c27a8bb9cf7d0c3ULL, 0x8fe837bd39068249ULL },
            { L_,  632, 0x27176094d07836fbULL, 0xced9b9819d33e87eULL },
            { L_,  633, 0x29bd31be8790d023ULL, 0x43fcb36501b41958ULL },
            { L_,  634, 0xec51b52a82ca2448ULL, 0x6a062ecbc0986ec1ULL },
            { L_,  635, 0x1ec94b70e200a9e7ULL, 0xaee30a71d62fb5edULL },
            { L_,  636, 0x47f4ee9338e36446ULL, 0x790be387586207cfULL },
            { L_,  637, 0x59240c41f53b6047ULL, 0x0bfc088fe6ebad0cULL },
            { L_,  638, 0x8cc60ff7f51246eaULL, 0x395a95b86d15807aULL },
            { L_,  639, 0xe251c583cbbab414ULL, 0x0f045c430f31eb2cULL },
            { L_,  640, 0x29e28b60f78d8fdaULL, 0xe2680afe2844e92dULL },
            { L_,  641, 0x0e9c813162fb09d9ULL, 0xf886342e68a44a2eULL },
            { L_,  642, 0x100d0af76bf816d9ULL, 0xc5abd5a67373781dULL },
            { L_,  643, 0x1c6ba8ada57e82ccULL, 0x2ac38ddd8fc6c139ULL },
            { L_,  644, 0x3bf62855f2ccdd4eULL, 0xd2f393123abb5f0eULL },
            { L_,  645, 0x8ea9d5ebc294d2ebULL, 0xaedfe6344f4bc8e8ULL },
            { L_,  646, 0xb6b77bd94a1bc567ULL, 0xd8abb51cd23034bbULL },
            { L_,  647, 0x22f74741051b152cULL, 0x7bcea5add5aa2447ULL },
            { L_,  648, 0x29169fa664c093afULL, 0xf2d2bc4176d40326ULL },
            { L_,  649, 0x778179ee4f6bd1ebULL, 0x6d7ccba37258b39bULL },
            { L_,  650, 0x22d20f80f237eb46ULL, 0xea2ac4c07aafd64dULL },
            { L_,  651, 0x46afee4342cc5c47ULL, 0xc96f92591c5ab2d3ULL },
            { L_,  652, 0xf1c21725b8a0c98cULL, 0xac14b9d5b9e03b7aULL },
            { L_,  653, 0x7c36bc6afb6ddf9bULL, 0x8ba1d4edfb2c5a0eULL },
            { L_,  654, 0x77528d9d0c1b41b0ULL, 0xfc260cf405b7e500ULL },
            { L_,  655, 0x1c93f6d8f8b1a34eULL, 0x76c2a045f4e9fbf5ULL },
            { L_,  656, 0x2819233b277756b1ULL, 0x7f7c59888cddbbf5ULL },
            { L_,  657, 0xf39e9876fcb4fb8eULL, 0xb7b02373a648569dULL },
            { L_,  658, 0x5211a21506505e49ULL, 0x0d41fc415944bd1bULL },
            { L_,  659, 0x69f1558f6c55a347ULL, 0x10ad048ab9956b25ULL },
            { L_,  660, 0x4df4d9fa8d9ce3acULL, 0xb0228f57c3465c77ULL },
            { L_,  661, 0x6ba173802c56c957ULL, 0x06b3d648d3fbf938ULL },
            { L_,  662, 0x3c3a369e1640d665ULL, 0x41e9ea4577638b14ULL },
            { L_,  663, 0x63fe35a2599e5dcfULL, 0xc35eaf3eb44a852dULL },
            { L_,  664, 0x45957efbd75103d4ULL, 0x801d1ceff51e3316ULL },
            { L_,  665, 0x5372f6c0f5bbeb66ULL, 0x07441c1da8864026ULL },
            { L_,  666, 0x3b3c50d1c4b1c45fULL, 0xc1e6eb18f5fa3536ULL },
            { L_,  667, 0x3024130b22ce4552ULL, 0x5034e30e206ad015ULL },
            { L_,  668, 0x3f10a8bde615fa3bULL, 0x1a7d8657230a3d70ULL },
            { L_,  669, 0xc4ded5f3b1319195ULL, 0x146c3f77ca585f70ULL },
            { L_,  670, 0x5376813a7378ccf3ULL, 0x19a78ced0b0e6b2aULL },
            { L_,  671, 0x79edfcf3b7bbfcc9ULL, 0xeac2f9455b25642eULL },
            { L_,  672, 0x7950dc3228dc5cacULL, 0x445c6bd5e229ce38ULL },
            { L_,  673, 0x21d7d5e55497fd84ULL, 0x9ffb8fd015df431cULL },
            { L_,  674, 0x8e9b1b39df0babdcULL, 0x2a89dbb7aae5c64cULL },
            { L_,  675, 0x735cddd3afd7e9c9ULL, 0x4e057d315facaec5ULL },
            { L_,  676, 0x40da82e55b4efefaULL, 0x3a3a3a14e3238515ULL },
            { L_,  677, 0xd4dfb0e973917cc3ULL, 0x71ab9f671255f81fULL },
            { L_,  678, 0x50d2c9cb98ccb2abULL, 0x478b31f938246fd0ULL },
            { L_,  679, 0xc1e87081d5c287abULL, 0xac303a502cfd50a1ULL },
            { L_,  680, 0xe088de3956c814fbULL, 0x9d3c7251f3bbe662ULL },
            { L_,  681, 0x1bc4fb80fdc08b91ULL, 0x15a248ba8e7c93a5ULL },
            { L_,  682, 0xd7a722924cf047deULL, 0xe035453411fc2d20ULL },
            { L_,  683, 0xa773794f5edb5309ULL, 0x92632d7bc40707dfULL },
            { L_,  684, 0xfd266dfab2671776ULL, 0xa5914cff8013894cULL },
            { L_,  685, 0x68112b1244bd1ba9ULL, 0x1bf07d46a7e781ebULL },
            { L_,  686, 0x471b132ea0d98e89ULL, 0xd0b45450d84a3943ULL },
            { L_,  687, 0x14f572b40e9771b5ULL, 0x734ddd322c78dbb9ULL },
            { L_,  688, 0x77f9c392ee263dacULL, 0x4562396e374e8998ULL },
            { L_,  689, 0xc8309bfc0c5fb30bULL, 0xda2d3835a9c53039ULL },
            { L_,  690, 0x49ae3e905667a439ULL, 0x1ec540ab673cb151ULL },
            { L_,  691, 0xe79bb97dd22ae92cULL, 0x86e9fbc43bf6986eULL },
            { L_,  692, 0x18338e6d6890f234ULL, 0x4771a8ade56c2963ULL },
            { L_,  693, 0x614e7bb7cf48ddfcULL, 0x25394038bebe9ec2ULL },
            { L_,  694, 0x41e0074a2010d012ULL, 0x86ab720679f29dfeULL },
            { L_,  695, 0x95991c9915d8baf8ULL, 0x9d1f52769192637dULL },
            { L_,  696, 0x4f5a76ecfad53511ULL, 0x2e752f3c150a1104ULL },
            { L_,  697, 0x08210231066b37f5ULL, 0x514863ff49ca9badULL },
            { L_,  698, 0x4a48e340d12b4d70ULL, 0x483cf54bf101de9eULL },
            { L_,  699, 0x981d33ed8699542bULL, 0x4bdd069b49f196a4ULL },
            { L_,  700, 0x620c57fc003535f7ULL, 0x2c279079a555b01dULL },
            { L_,  701, 0x0420f3178408a450ULL, 0xeaa50601e9f16917ULL },
            { L_,  702, 0x560352961b146c7dULL, 0x9dc0fe8dcb639af2ULL },
            { L_,  703, 0xbf828bf1363dc830ULL, 0xc8fd4b361365e6c1ULL },
            { L_,  704, 0xc667644f11b1cc7bULL, 0x4c05dafc8726fa6eULL },
            { L_,  705, 0x30778503e5ad1aa5ULL, 0x078b365414525527ULL },
            { L_,  706, 0x3d033e42f4f7beb4ULL, 0xc12bb4be209e34d4ULL },
            { L_,  707, 0x65b9645d9e82b56fULL, 0x7b567a4cf955c848ULL },
            { L_,  708, 0xf816fee04345f25cULL, 0x498a75e5b37e2a49ULL },
            { L_,  709, 0xf948ffbea681e059ULL, 0xee43db5d6df6fc96ULL },
            { L_,  710, 0x2cf073c4ca75102eULL, 0xd0263e036cf03dafULL },
            { L_,  711, 0x7c86a85907ffa50dULL, 0xb0c79e4588ae2d95ULL },
            { L_,  712, 0x51aaac0af2acb4f8ULL, 0x3ad21f51adadd17eULL },
            { L_,  713, 0xa5f1996842b1c499ULL, 0x1f6a8b8d6c64f991ULL },
            { L_,  714, 0x4aab3d2b958fced3ULL, 0x2b0ddd9b8c71e5f1ULL },
            { L_,  715, 0x7196bbe03d04eb7dULL, 0xa964653af855f9c2ULL },
            { L_,  716, 0xbd4644b02c0d1cacULL, 0x4ffcbd169ee8399eULL },
            { L_,  717, 0x87c44e06e0d0bd02ULL, 0x8f5c4cfddd301169ULL },
            { L_,  718, 0x0f6036c3a5b785e3ULL, 0xa08b22f34cebebe2ULL },
            { L_,  719, 0x28ee379a22d1f2b1ULL, 0xcfb5c595fd6eac06ULL },
            { L_,  720, 0xb0d4193712087567ULL, 0xc445ae3916d5a76fULL },
            { L_,  721, 0x8f16d2ce0ae5f969ULL, 0x66ed716ec6800452ULL },
            { L_,  722, 0xa6887897855f6addULL, 0x4a450ed88b3cc930ULL },
            { L_,  723, 0x09de23ebe1dcd074ULL, 0xeb55d6a65bc099b8ULL },
            { L_,  724, 0xc406558233f95f1dULL, 0x4d5d1ab0686a97b4ULL },
            { L_,  725, 0xae082fc84007e6b3ULL, 0x74eb2f4810bab049ULL },
            { L_,  726, 0x4621997c153828d0ULL, 0x96b9d6f52205b008ULL },
            { L_,  727, 0xd0e2486a378aa7fbULL, 0xe3b0895265c85b0eULL },
            { L_,  728, 0xeed3d3fcd079b612ULL, 0x6fb62627c9e30149ULL },
            { L_,  729, 0xba6b8522bb9b160cULL, 0x95a540b96a43f31dULL },
            { L_,  730, 0x4da136d32b1271a6ULL, 0xed31110097451aa1ULL },
            { L_,  731, 0xe8c416da7836bf67ULL, 0x795f571569088ceeULL },
            { L_,  732, 0x2af05b86f9d87a3aULL, 0xc87040e07c9e58a9ULL },
            { L_,  733, 0x23850eb89142d886ULL, 0x113e523d3e684546ULL },
            { L_,  734, 0x4b374770b6b73edeULL, 0x438248873ea523fdULL },
            { L_,  735, 0x556995de24de0afcULL, 0xfea0174febd2ea80ULL },
            { L_,  736, 0x48fe26b6cca99aebULL, 0xf34a98555eaad6e8ULL },
            { L_,  737, 0x642889f151da37daULL, 0x87724eaa823252c0ULL },
            { L_,  738, 0xe12312652d7d6da4ULL, 0x31198cba8e55fea8ULL },
            { L_,  739, 0x0792273c6dbb9c0aULL, 0xd3b539a41ab42aa1ULL },
            { L_,  740, 0x79571f414ce894a9ULL, 0xcfce7325037409ffULL },
            { L_,  741, 0x170f27a110a30b44ULL, 0xf8e36e519c59aefbULL },
            { L_,  742, 0x8ce6002200fd4fa8ULL, 0x9310a26aafcec76dULL },
            { L_,  743, 0x7cd34b0eb1001afeULL, 0x313283d1a7b5f471ULL },
            { L_,  744, 0x7ba55d7b83cdcc9eULL, 0x284f993e698ddfbdULL },
            { L_,  745, 0xdf3075fc9fd25385ULL, 0x286a4f3eb40edd69ULL },
            { L_,  746, 0x31b4d993bda8c448ULL, 0x77bb8916791df176ULL },
            { L_,  747, 0x767035333ce9e148ULL, 0x09792c73dcb1a510ULL },
            { L_,  748, 0xf79c601b979ce0b6ULL, 0xff003b26d0b9f189ULL },
            { L_,  749, 0x5ff3b273b008c5ecULL, 0x9f47e7c2d6276a77ULL },
            { L_,  750, 0xe3013ce6e153d94aULL, 0x09a20468983d0364ULL },
            { L_,  751, 0xbd406e55293082deULL, 0xd76e9f5523b87407ULL },
            { L_,  752, 0xc38724e9ede0ab32ULL, 0x6a684837fd9da3a1ULL },
            { L_,  753, 0x5fd5c60a3da77b80ULL, 0x61c54effd91250b5ULL },
            { L_,  754, 0x58004b41bbf463e4ULL, 0x821cea62c1cf4380ULL },
            { L_,  755, 0x22dc659a12c29983ULL, 0x587d6d714a9fdb6fULL },
            { L_,  756, 0x5e79659c9b19a0feULL, 0x2766cb08ed15f77aULL },
            { L_,  757, 0xa169e748857e7364ULL, 0x57059783f9648bb8ULL },
            { L_,  758, 0xa52adea3f47d7333ULL, 0x162b36a8dd57765aULL },
            { L_,  759, 0x857f49f98b73355cULL, 0x6e145dfc5994189eULL },
            { L_,  760, 0xd4f50a80d765dd79ULL, 0xbc1f2a71d8596840ULL },
            { L_,  761, 0x51309e8c9bba4e58ULL, 0x3041470beff88d5cULL },
            { L_,  762, 0xc6ba3c221a7aa047ULL, 0xdb91333f34fad9c0ULL },
            { L_,  763, 0x551c28fba580d130ULL, 0x6cd2ab79f009ba7bULL },
            { L_,  764, 0xac31a3079b9b69faULL, 0xd78a755c185dc60eULL },
            { L_,  765, 0x3fdb7370fc90668dULL, 0x1b3e91fc62db2d14ULL },
            { L_,  766, 0x9c5857cdc02d0bd8ULL, 0xa61e012535656068ULL },
            { L_,  767, 0x48112f011683a9ebULL, 0xa08545efb1e5a623ULL },
            { L_,  768, 0x88d6e0234d497eadULL, 0x91072084a523a8c2ULL },
            { L_,  769, 0xb0b17ba67fdb2f57ULL, 0xf698d0035a2dd7a8ULL },
            { L_,  770, 0x235b63cda0bb8891ULL, 0xd9c89f4cfc6c941dULL },
            { L_,  771, 0x736b15db1a188c68ULL, 0xef4921a7179f875eULL },
            { L_,  772, 0x097a5e39e149cfe7ULL, 0x09a257c340265518ULL },
            { L_,  773, 0x24827631a0bd0cebULL, 0x35935871adbfe0f1ULL },
            { L_,  774, 0x5a0687fbeea06425ULL, 0x9003be14db1c2652ULL },
            { L_,  775, 0xcc605194f374d14cULL, 0xd8518ebf9ab099aaULL },
            { L_,  776, 0x027cab8f8158ff29ULL, 0x1ef16927d9e0b953ULL },
            { L_,  777, 0x827997a11e6a8b14ULL, 0x5c77d425da56e8e2ULL },
            { L_,  778, 0xb4539ee728901f1eULL, 0x72db742aa78a12dbULL },
            { L_,  779, 0x4e823fca3fe4b5afULL, 0x2fdd1288e0a26892ULL },
            { L_,  780, 0x1a44ad9a155a10eeULL, 0x4be2a1fb13815f5dULL },
            { L_,  781, 0xf9c9a7ade67195ccULL, 0x2d44b98ed717c5d6ULL },
            { L_,  782, 0xf175ab59bc70a9b4ULL, 0xf319a52132d8f184ULL },
            { L_,  783, 0xb5a8f9cf0c49d8eaULL, 0x7d2867bb0b8bffc0ULL },
            { L_,  784, 0x9a2b282150f3356bULL, 0xbf6d4cb41b5c62c0ULL },
            { L_,  785, 0x0b223d21e845376fULL, 0xffde21350f9398caULL },
            { L_,  786, 0x72082b4f3f82f928ULL, 0x6fef1d38ba02ba8cULL },
            { L_,  787, 0x409b3910081c433bULL, 0x55a6436116fc8264ULL },
            { L_,  788, 0x9bc166426788ea93ULL, 0xfd9b21ff3830e4ffULL },
            { L_,  789, 0x6a56fa88c837861bULL, 0xcda104a2c042f991ULL },
            { L_,  790, 0xe427ec2cf620367aULL, 0x01b34ad6bb70921bULL },
            { L_,  791, 0xe601ed3ab0ef8827ULL, 0xda40cbf95eff35c2ULL },
            { L_,  792, 0x0a8a6fbe028165eaULL, 0x8c7272fc890e3dbdULL },
            { L_,  793, 0xcee714d30db34ae6ULL, 0x7f205e2cc8ba0e59ULL },
            { L_,  794, 0xf850067c7b2f180cULL, 0x4d09c5951a684512ULL },
            { L_,  795, 0xfe5f257b3fa0652aULL, 0xcf07553bed6277b7ULL },
            { L_,  796, 0x54a9833443cd1c5cULL, 0x38c0d63aa1c2d49eULL },
            { L_,  797, 0x11dccb5002551a55ULL, 0xe4cbc06e61a99858ULL },
            { L_,  798, 0x876a8904104c1e8eULL, 0x99976909019e55c0ULL },
            { L_,  799, 0x251753767dfad2a8ULL, 0x8dd321151b81d164ULL },
            { L_,  800, 0xf2cbdf55e7c67f26ULL, 0x75e05c504734ea6cULL },
            { L_,  801, 0xf8bc2e17cad29ba7ULL, 0x9515b512274b5394ULL },
            { L_,  802, 0x595ac6f1537da090ULL, 0x6de0d7fa89b78701ULL },
            { L_,  803, 0xb3c1fab7bc43c585ULL, 0x24a0fc779107e478ULL },
            { L_,  804, 0xeec4dde4043031cfULL, 0xb437f1b190c1bdcdULL },
            { L_,  805, 0xd2d8dae3341b3426ULL, 0x73ea5fcdda4f2849ULL },
            { L_,  806, 0x625f97eb8e1829b9ULL, 0x6e5380d3cca9321aULL },
            { L_,  807, 0x3c4a93e1dad97657ULL, 0x74ff4bb4ec2211edULL },
            { L_,  808, 0x7a39f131004aae1dULL, 0x386aec9c510849c7ULL },
            { L_,  809, 0xb1b8f73bfe999769ULL, 0xdf9f8f5576743f67ULL },
            { L_,  810, 0x5b92b5365eaf4211ULL, 0x679d45b65bc6f6e1ULL },
            { L_,  811, 0x9e7897ccbe47054aULL, 0x4e7e4a17350e6578ULL },
            { L_,  812, 0x2e573c5a1fd5db33ULL, 0x5193f6ed21a57aa3ULL },
            { L_,  813, 0xe5d3e9107de4c183ULL, 0x2f0cd2e620082a59ULL },
            { L_,  814, 0x8f5a3d9bade35c0cULL, 0x7ce2009cd85ff910ULL },
            { L_,  815, 0xd088ba689049fc70ULL, 0x9a76fc46ef9759e8ULL },
            { L_,  816, 0x6fd475a579d75018ULL, 0xe921065e5bff6b3bULL },
            { L_,  817, 0xb5886d5ed2e11608ULL, 0x7bb8f270cad97c6cULL },
            { L_,  818, 0x0f315594b5c1fc09ULL, 0x38d649cc7e138cbcULL },
            { L_,  819, 0x986166642a3019caULL, 0x36ee496258f7005dULL },
            { L_,  820, 0x8fad750f2fef09acULL, 0x489d11b0633cc42aULL },
            { L_,  821, 0xed47adda2de2077dULL, 0xf9e50c6bd872a027ULL },
            { L_,  822, 0x4ffd832b05874009ULL, 0x6487c0f882978fb7ULL },
            { L_,  823, 0x986e68c4799787bfULL, 0x6f21b29388c0ffa7ULL },
            { L_,  824, 0x4f9ce2749b62de5cULL, 0x9e4eee45c8f4cdbaULL },
            { L_,  825, 0x839bd7853da87348ULL, 0xe56b2fd67ea6cac8ULL },
            { L_,  826, 0xd7ff5e714e68fde3ULL, 0x90e801f891e3bce2ULL },
            { L_,  827, 0x06855f87bcb0f96aULL, 0xb87604aaabede4f9ULL },
            { L_,  828, 0x426d1079cc626b74ULL, 0x7b80e437237fcfdfULL },
            { L_,  829, 0xc0111292fdfaa30cULL, 0x7f2183fff983f363ULL },
            { L_,  830, 0xeaa49f15343e631cULL, 0x3242fa2ed8bec76dULL },
            { L_,  831, 0xa59b07116517e7cdULL, 0x1515749b19b910c5ULL },
            { L_,  832, 0xba16c95e108d1f34ULL, 0xfeae97e92ab8f996ULL },
            { L_,  833, 0xdb774bb56c643646ULL, 0x725afc987a05d86aULL },
            { L_,  834, 0xbf2f402d0ecc3e79ULL, 0x6740c2a2025b14e2ULL },
            { L_,  835, 0x82a04e14d8aba7a1ULL, 0xaef92e67a980e921ULL },
            { L_,  836, 0x0af9291ca1d7eb92ULL, 0xce8066c42f9fde3bULL },
            { L_,  837, 0xc4356ecc26bf046fULL, 0xc7819baac53354c2ULL },
            { L_,  838, 0x3b20148726ed99f4ULL, 0xb791203e6ca7e7e2ULL },
            { L_,  839, 0xdcf43113be368e17ULL, 0xe6d17e18823d559dULL },
            { L_,  840, 0x2ad9ddfb1c6f909fULL, 0xb8a7a60bcb7c2b0bULL },
            { L_,  841, 0x34074d69f6b2f0f5ULL, 0x9ed0e760a4c39671ULL },
            { L_,  842, 0x8cc92b0a45b01d2fULL, 0x795d7b014e98f1fdULL },
            { L_,  843, 0x12e735afe5669c58ULL, 0xbd3f63782c2f328aULL },
            { L_,  844, 0x8e33848e8777575bULL, 0x4b585dfc425df102ULL },
            { L_,  845, 0x5c6031a620a00f9bULL, 0xd881431a0c55eca1ULL },
            { L_,  846, 0x9fe0d330e0a9cbd8ULL, 0x52d826b4fde12881ULL },
            { L_,  847, 0xf1bba6a99c4b2368ULL, 0xa8e3c57776895659ULL },
            { L_,  848, 0x30d9515b5f13d81cULL, 0xc0e81bef5733c4c8ULL },
            { L_,  849, 0xd1f006e711c5c7bcULL, 0x81c9a095f511e2d5ULL },
            { L_,  850, 0xec0cb676b10a0436ULL, 0x371453701b4e87d0ULL },
            { L_,  851, 0xe5579e809c73b441ULL, 0xcf3fc4f69a17f568ULL },
            { L_,  852, 0xb9cbb9e5171717d8ULL, 0x109f04c8f751c9a7ULL },
            { L_,  853, 0x567b0b3b66b398aeULL, 0xf094f529b8e93d6cULL },
            { L_,  854, 0xaa1ca5fe8d042295ULL, 0xb61d2d0e11cfa375ULL },
            { L_,  855, 0x2c982ceafc85b61cULL, 0xa909780d4794c38bULL },
            { L_,  856, 0x40f1c6138833ea18ULL, 0x4b324f0a0f17b36cULL },
            { L_,  857, 0x44cdc8d4f055f6a8ULL, 0x8be1122930fe49c8ULL },
            { L_,  858, 0x94abac76d0210227ULL, 0xccc70accc434e425ULL },
            { L_,  859, 0x24d2362c6cd37410ULL, 0x6c96f27dfa62fe20ULL },
            { L_,  860, 0x992fbc013b81d1ceULL, 0xac95a4a71e42e7d6ULL },
            { L_,  861, 0x068ca153821216a6ULL, 0xdf7c5fb76a75fc70ULL },
            { L_,  862, 0x1cc9bc2a5c0f2705ULL, 0xcb0617cbf89e9728ULL },
            { L_,  863, 0xd0850640b46a22baULL, 0x6799b54e5ec890e2ULL },
            { L_,  864, 0x80a8a8a9eb3ee828ULL, 0x3f7b6a769a1d7890ULL },
            { L_,  865, 0x9e9d63ac7463939bULL, 0x86869ecdeefd5adbULL },
            { L_,  866, 0xe26fb1412f59b0c4ULL, 0x5bba4f31685e41f2ULL },
            { L_,  867, 0x3c37ec161d0b863fULL, 0x5ee6cb0d0b978b47ULL },
            { L_,  868, 0x9ac400f2cf36c6b9ULL, 0x621c6e78efc77f8bULL },
            { L_,  869, 0xfbc23eccca4de123ULL, 0x62db1e3ca17bb57bULL },
            { L_,  870, 0x5fe6037d6dc66c35ULL, 0xb2ccb63d437c6915ULL },
            { L_,  871, 0xaf7723aa7d6974e1ULL, 0x8c0aaf3030c4ae17ULL },
            { L_,  872, 0x4522dfa107d95e13ULL, 0x094a406ae96892b1ULL },
            { L_,  873, 0x069423b302d37b83ULL, 0x4c636c5b82610a8dULL },
            { L_,  874, 0x737dbfa54624b090ULL, 0xf9418522cecd8314ULL },
            { L_,  875, 0x9de5514a10153da7ULL, 0x782ef9a8f93b7843ULL },
            { L_,  876, 0x5be77b6a3ceed9a0ULL, 0xe18337adeeeba8b5ULL },
            { L_,  877, 0xb77ff4cae20eedaaULL, 0x89b742781e62d846ULL },
            { L_,  878, 0x813c9c3d5be3824fULL, 0x4687df4884e97129ULL },
            { L_,  879, 0x16f49c66f3e8c18bULL, 0x44f21b51f4e0f676ULL },
            { L_,  880, 0x91a64292b87d96ffULL, 0xbe2774210ca8ef0cULL },
            { L_,  881, 0x9713946e93c3ee09ULL, 0xffd5224f67e0b901ULL },
            { L_,  882, 0x72fce380d59ed485ULL, 0x70cf89f851986824ULL },
            { L_,  883, 0xfa4202ef45c0f9cbULL, 0xfb3b39df6bc2fbeeULL },
            { L_,  884, 0x47cf67d850d93ed0ULL, 0x85c0fe54ad0d1c0aULL },
            { L_,  885, 0x5ac6b7948b071030ULL, 0x1030877f92f84168ULL },
            { L_,  886, 0x56a5531481a31accULL, 0xdfc87d4a0da7225dULL },
            { L_,  887, 0x1db7b115516dc048ULL, 0x6fde0dcfdb35a17eULL },
            { L_,  888, 0x96035ec047d1ea96ULL, 0x06231133a139d31aULL },
            { L_,  889, 0x27051a032262c638ULL, 0xe3dd3641158afc36ULL },
            { L_,  890, 0xb5de4545fbd123a9ULL, 0x078d5e64e4467301ULL },
            { L_,  891, 0x2849717ae7d454f5ULL, 0x6c856d726f63367eULL },
            { L_,  892, 0xd1b976e8479df766ULL, 0x021c75ef06285017ULL },
            { L_,  893, 0xf02a3da2d0e128dbULL, 0xd8add61d76032900ULL },
            { L_,  894, 0xde1b65e7bc8eafc4ULL, 0xfa8f103c02108a4eULL },
            { L_,  895, 0x967dbddbf5f340fdULL, 0x59f571d936dd12ecULL },
            { L_,  896, 0x64c48f3508180287ULL, 0xde7029bdf087010dULL },
            { L_,  897, 0xeb1764f681d40e3bULL, 0x8f5adca8d75dfca4ULL },
            { L_,  898, 0x2e61884d4d0dfd03ULL, 0x4013097297e2f401ULL },
            { L_,  899, 0xecb814600aac5c7cULL, 0x2de64e614221ac14ULL },
            { L_,  900, 0x0f8321def3c3a78fULL, 0xae9992f7930ff3fdULL },
            { L_,  901, 0xe3139e45e37afbb0ULL, 0x040e4899688948ceULL },
            { L_,  902, 0x2a0ddfc1e9f0f9a1ULL, 0x89d94de2ecb245c3ULL },
            { L_,  903, 0x461cf898a3ef96b5ULL, 0xc9931d44a5a50fb2ULL },
            { L_,  904, 0x659ce42af048daf6ULL, 0xa47793cd2742a33aULL },
            { L_,  905, 0x857678adc5342377ULL, 0xe828d5d70b5fb963ULL },
            { L_,  906, 0x72f865e268989a2dULL, 0x0ffad9f0fb5077daULL },
            { L_,  907, 0x646b2f40596b28c1ULL, 0xcce63a6847c114b8ULL },
            { L_,  908, 0x9f1f95361ad7142aULL, 0xa3eedcc4c9d18a24ULL },
            { L_,  909, 0x2e21a21e8e485dbeULL, 0x79473bf8dae8f5b5ULL },
            { L_,  910, 0x7b0564111c3460a3ULL, 0x416e4542f8ecdbfeULL },
            { L_,  911, 0x6ab198d0be137766ULL, 0xb930ccc784dd5c2dULL },
            { L_,  912, 0x80a70e7149eb44f1ULL, 0xd20e0474bc1b4e74ULL },
            { L_,  913, 0x00fc6ede6c3ffe7eULL, 0x880895c705012712ULL },
            { L_,  914, 0xef259487d7d7e313ULL, 0x06e46076ab3a846eULL },
            { L_,  915, 0xaf3ac08fff1de17dULL, 0x7f12cd66a01779dcULL },
            { L_,  916, 0xbf2c8bcd664ec74bULL, 0xc7156f88c15829c6ULL },
            { L_,  917, 0xcbf53debfd341ad0ULL, 0xeb5172266df0b3e4ULL },
            { L_,  918, 0xd57f6af61e696d05ULL, 0xdb9b3dc6dde17f87ULL },
            { L_,  919, 0xb4a072b60a758b02ULL, 0x2eca213099d5d790ULL },
            { L_,  920, 0x0f4195089ca97fa6ULL, 0xd0c63fd4623c482cULL },
            { L_,  921, 0x3043f43fded6224cULL, 0x41364fd880470087ULL },
            { L_,  922, 0x404c4e7c9c475a62ULL, 0x60c897d45e0eb751ULL },
            { L_,  923, 0xe4e2bee34102bd1dULL, 0x7d2bc4a24a85f043ULL },
            { L_,  924, 0xcf065e1c60ae6624ULL, 0xa6b1c0233421c5f7ULL },
            { L_,  925, 0x8432adf280f4df25ULL, 0x2cb75083ff472a31ULL },
            { L_,  926, 0x790c2ae2f4582669ULL, 0x9630af864af65b01ULL },
            { L_,  927, 0x28ef3141498025b2ULL, 0x379d52254bcd9cc2ULL },
            { L_,  928, 0xd677f7da5cf295cfULL, 0xdc470a9e2d2b5dcdULL },
            { L_,  929, 0x18c93a0e549df3cdULL, 0x83def6a3bb6ddb27ULL },
            { L_,  930, 0xfefec2259b0d32feULL, 0x49ea77d2d634a254ULL },
            { L_,  931, 0x512d6bd3b9ff2490ULL, 0x615138c143b05622ULL },
            { L_,  932, 0x7d81325cf2127023ULL, 0x8c389c67479aa889ULL },
            { L_,  933, 0xcbdae834e0763edbULL, 0xece1ce770fdbc7e7ULL },
            { L_,  934, 0x5d47a9f2c9fe5c09ULL, 0x9330c2582a251dfbULL },
            { L_,  935, 0x1f294acd5026e23fULL, 0x321661f7eca2277cULL },
            { L_,  936, 0x6a94c963dcbd4984ULL, 0x34ba85ce8d03e738ULL },
            { L_,  937, 0xd22b85174233b703ULL, 0xa8e998d0e9ca5593ULL },
            { L_,  938, 0xe3c6ed3069889259ULL, 0x2936f12fd73bac29ULL },
            { L_,  939, 0x50f5daa9b4be6a8dULL, 0xc094ad19baf90569ULL },
            { L_,  940, 0x94bd22bb27f088bdULL, 0x177afc2ffd55a81aULL },
            { L_,  941, 0x5b443d70e39b6a59ULL, 0xc5114b207059fe8aULL },
            { L_,  942, 0x704a4f0c47574511ULL, 0xbad9bf1bd0b9788dULL },
            { L_,  943, 0x41e0e545d9d6e486ULL, 0xcd1555f823ed0328ULL },
            { L_,  944, 0x2317ff50a20fccecULL, 0x7384c5f43eaac713ULL },
            { L_,  945, 0x3e3e05c403c06d29ULL, 0x96545c24da79217aULL },
            { L_,  946, 0x605094cc17312ad1ULL, 0x9f7e686744241530ULL },
            { L_,  947, 0x06958e9f6b1178feULL, 0x94ed59320aa5a28fULL },
            { L_,  948, 0x26b6926c3082c149ULL, 0xe66a092302b785bfULL },
            { L_,  949, 0x29bc867a4fc36b01ULL, 0x064c9e92d9dca760ULL },
            { L_,  950, 0xfead3883dfeb9499ULL, 0x6662963986c5d22bULL },
            { L_,  951, 0xe0c95a056d871093ULL, 0x9e62e0c2c13adbf2ULL },
            { L_,  952, 0x0fa503943a56ef06ULL, 0x5b1c4f478e9e1151ULL },
            { L_,  953, 0x2e7027ef52a4c91fULL, 0xef95edf938bc9ed2ULL },
            { L_,  954, 0x41b6802db97a78faULL, 0xdbbeec1d25ea87c8ULL },
            { L_,  955, 0xd6c2a7956c94b5d0ULL, 0x08dadb502f7e7160ULL },
            { L_,  956, 0x3bc4628297fc2a9dULL, 0x66efb031bc24aee3ULL },
            { L_,  957, 0x4db453ec61412dafULL, 0x1424d10a0430c467ULL },
            { L_,  958, 0xb6ee2ee87d11e053ULL, 0x3a4f08207f28c9f6ULL },
            { L_,  959, 0x74fb5f536e323191ULL, 0x1ee6f5bb49d6065eULL },
            { L_,  960, 0x37dd86c91d2513d3ULL, 0x52b760c98141c8b1ULL },
            { L_,  961, 0x95c7a141346706a3ULL, 0x121a37933bad4313ULL },
            { L_,  962, 0x86a7fc5cc72e0f88ULL, 0x7d410a9003740660ULL },
            { L_,  963, 0x8176b93c57d5b630ULL, 0x5c80da998e9cf712ULL },
            { L_,  964, 0x57a498ee84a3185bULL, 0x3cb126bbf4982fdeULL },
            { L_,  965, 0xa112c3f728d86293ULL, 0x3d2bff8f90facb26ULL },
            { L_,  966, 0x96cbe1813bacfda2ULL, 0xb71a3da0dc6605eaULL },
            { L_,  967, 0xcefa9a946accff87ULL, 0xac6bbe05bf619e3fULL },
            { L_,  968, 0x56bf7f5634c00349ULL, 0x0083162f636f0cfeULL },
            { L_,  969, 0xe02471dae6d003efULL, 0x88331c439d6357d4ULL },
            { L_,  970, 0x94e3d660487b5b3eULL, 0x710beda29beda1aeULL },
            { L_,  971, 0x6d72a844c587ae7aULL, 0x3fa8a4b8b9db3d5cULL },
            { L_,  972, 0x8ca4eaca181d6d68ULL, 0xcadaf436a105cddaULL },
            { L_,  973, 0x72a4eee8021a4e4dULL, 0x47654cc3dc6a3e58ULL },
            { L_,  974, 0xbda57878ce05f434ULL, 0xec6626fbaf43afa1ULL },
            { L_,  975, 0x5209ad0b498e4cbdULL, 0x99e28c76edb17a6fULL },
            { L_,  976, 0x7c1172594d79945bULL, 0x291370e2c928cff6ULL },
            { L_,  977, 0x8b28d9219e33a513ULL, 0x5ac6fc1d834b1c20ULL },
            { L_,  978, 0xfb51182b155f1944ULL, 0x4cdcf2bd942af77aULL },
            { L_,  979, 0x4a879f19f3b91e5fULL, 0xa3e9a7658ca8e069ULL },
            { L_,  980, 0x254b90f663d4a4faULL, 0x148272247d391d05ULL },
            { L_,  981, 0x1406e7277f7c10eaULL, 0x2ded43cef8e34955ULL },
            { L_,  982, 0x88b80cfd4a8aaca8ULL, 0x0855b083454f4fd2ULL },
            { L_,  983, 0x907d69d71e2f6bbaULL, 0x6102bb0935778817ULL },
            { L_,  984, 0x8eccb25a996644a1ULL, 0x7e8178564b47fe04ULL },
            { L_,  985, 0x2c13ce6decb78ad5ULL, 0x15cabbb022cdb167ULL },
            { L_,  986, 0x7b5c4976a12c0f85ULL, 0xa066a14085735cdbULL },
            { L_,  987, 0xfcaaa07b0d4e4b2eULL, 0x1921a2593f45872aULL },
            { L_,  988, 0xed6b8ebed539dd89ULL, 0xbaf840aeb69c307aULL },
            { L_,  989, 0x56fd7181479ff28cULL, 0xc0c66786d18070a0ULL },
            { L_,  990, 0xa7926c46bb077bb5ULL, 0x06590e0990bb1dc7ULL },
            { L_,  991, 0x7a20976dee05a770ULL, 0xd37dba1580d6b0fcULL },
            { L_,  992, 0x340b4c5e2811315aULL, 0x71a37e646c8abf88ULL },
            { L_,  993, 0xd466312853bfd5a8ULL, 0x2492fab293294c5fULL },
            { L_,  994, 0xbd072bcfb118fb38ULL, 0xb6bb3bf18aa2e0a6ULL },
            { L_,  995, 0x02bc73e2283c85f8ULL, 0xf1f9e758d3faecd2ULL },
            { L_,  996, 0xb530577a3786dc87ULL, 0xf49d0b453152c97fULL },
            { L_,  997, 0x1e8980deb424bef7ULL, 0xe33309826d50ecc1ULL },
            { L_,  998, 0x94025e2a96c8876fULL, 0x32d8df836115a26dULL },
            { L_,  999, 0x59af4ea063ab70aeULL, 0x3ea6d523456ecab1ULL },
            { L_, 1000, 0x234b1c523ffaf089ULL, 0xa83e2360e6da5e60ULL },
            { L_, 1001, 0x341e146dba35cf71ULL, 0x575d486187c9c04dULL },
            { L_, 1002, 0x1b601b63088156deULL, 0x3eaed715564d7646ULL },
            { L_, 1003, 0xf0418742779b6136ULL, 0xc75327f3dbd5465bULL },
            { L_, 1004, 0x3f6cd2de9dad0650ULL, 0x334e11c32b3aad2cULL },
            { L_, 1005, 0xe1e80cac6550b8a9ULL, 0x952623ae526011ddULL },
            { L_, 1006, 0x7f254b08db3dcc14ULL, 0xc06981dba4c874a5ULL },
            { L_, 1007, 0x9e569a2e8977633bULL, 0xd5707e6b5d931cc5ULL },
            { L_, 1008, 0xdb993566b2e881f0ULL, 0x29bb890edf9cb0dcULL },
            { L_, 1009, 0x07ddeb78256bba00ULL, 0x515b8496ae59e0d7ULL },
            { L_, 1010, 0xff12f4ba13f2c34eULL, 0x3e78cdaa3d61bcdaULL },
            { L_, 1011, 0x65ccd435ff505b6dULL, 0x3699fad7e02ce060ULL },
            { L_, 1012, 0x15d61d4e2acd9826ULL, 0x5d46fd9f641279e5ULL },
            { L_, 1013, 0x1c2c7c1a0f942ca0ULL, 0xe18ca01f5b63eb6eULL },
            { L_, 1014, 0xbb44b4ff84f6317bULL, 0xf8f37d693c3e5204ULL },
            { L_, 1015, 0x9949618e2e04d6ebULL, 0x0c800a458ffa2d34ULL },
            { L_, 1016, 0x0feac15ec270afbdULL, 0x35e9f7a971ae436dULL },
            { L_, 1017, 0xf68e4656de8d3032ULL, 0x01cd4d37fc3b52e8ULL },
            { L_, 1018, 0x0545c52a2cc5938fULL, 0x7fb3d92ca91fabe1ULL },
            { L_, 1019, 0x56e404552ef7099cULL, 0xba1e20115177db74ULL },
            { L_, 1020, 0x7f32508fecc77a00ULL, 0xdf6f8dd55810e062ULL },
            { L_, 1021, 0x3e6a78be483ced53ULL, 0x1ebbff445d677023ULL },
            { L_, 1022, 0xd6c9e3c420b88dccULL, 0x197ca683055a5fc0ULL },
            { L_, 1023, 0x8e8151ae1d80ea14ULL, 0x8380fca822dd6beeULL },
#else
            // Big Endian
            { L_,    0, 0x668a22308763c6eeULL, 0xeec07ed910bce07aULL },
            { L_,    1, 0xe3ed48d4d9af27dbULL, 0x0ab0889740095888ULL },
            { L_,    2, 0x81745d7dc1e866feULL, 0x6a071cceb4d53021ULL },
            { L_,    3, 0x6ddc415336e4c169ULL, 0x8de49e8b1c985c4bULL },
            { L_,    4, 0xdc788e5b5a335318ULL, 0xe84aacd03c2b320aULL },
            { L_,    5, 0x848d7747c7f9f23cULL, 0xf0bcc6461163bb26ULL },
            { L_,    6, 0x5d307ec05d0c5a7dULL, 0xc5a07962497242d8ULL },
            { L_,    7, 0xdfba40e4d5957283ULL, 0xe8904667c24e9e91ULL },
            { L_,    8, 0xd3a069904ecbccabULL, 0xd32cea1a2085bf14ULL },
            { L_,    9, 0x7cb8ae600162d51dULL, 0x5903080057a05280ULL },
            { L_,   10, 0x9c0eb2d19666b1e1ULL, 0xb6a7856d7f870a44ULL },
            { L_,   11, 0x613ff92e94fca0e4ULL, 0xde1957d667967167ULL },
            { L_,   12, 0x2881363c02ab70adULL, 0x83ddc4abc43be562ULL },
            { L_,   13, 0x0f95525f913ec910ULL, 0x5e0aa76f079e6368ULL },
            { L_,   14, 0x3fd5fc4c3ff0e0e7ULL, 0x9435d4889fb691f3ULL },
            { L_,   15, 0x0320f26da92853d1ULL, 0x0d355880d7c9c5ddULL },
            { L_,   16, 0x807efe34aa7cb1feULL, 0x89f9db9afbce72a8ULL },
            { L_,   17, 0x1b4f75c80dfe07c3ULL, 0xaba74d239973ff8dULL },
            { L_,   18, 0x312af180b80f4e3dULL, 0x7631e1c4498c9334ULL },
            { L_,   19, 0x79a8d7b8441be0eaULL, 0x36a8a0db8a32d629ULL },
            { L_,   20, 0xcb5dd59be7cdcf11ULL, 0x62dedd41517608daULL },
            { L_,   21, 0x6188588a4af642ddULL, 0x7a1506066946cd5eULL },
            { L_,   22, 0xde3bde47b766e218ULL, 0x823d6c5b2c1d49f8ULL },
            { L_,   23, 0x6ed5e509b2d6455eULL, 0xdba352690e028fbfULL },
            { L_,   24, 0x8461a3cbfc26ed80ULL, 0x61f340a04a6c78f3ULL },
            { L_,   25, 0x2eca501d3930a536ULL, 0x9c9d83aa61cef042ULL },
            { L_,   26, 0xb2fddd011d4bc90eULL, 0xdc38d663c12f39ceULL },
            { L_,   27, 0xd6c8198f426fd590ULL, 0x0dc8365c67cc8583ULL },
            { L_,   28, 0x3f35bfb895dda112ULL, 0x34d3a7892f79a26eULL },
            { L_,   29, 0xb709cf4e398e62f5ULL, 0xc613aa1cefefff34ULL },
            { L_,   30, 0x4654c4b7c0a0e4a8ULL, 0x03e478f3da906f50ULL },
            { L_,   31, 0x1531add3e627aa62ULL, 0x73464d43470aa959ULL },
            { L_,   32, 0xff98c44fd0d468aeULL, 0xbb37beed8cf9d7a4ULL },
            { L_,   33, 0x52c84c2684a52f0aULL, 0x02670db7d26d9490ULL },
            { L_,   34, 0x4dc249823022acacULL, 0x536db46e68fdba2bULL },
            { L_,   35, 0x261bcedc01caefb0ULL, 0xd72cadb952aa1c26ULL },
            { L_,   36, 0x2e2e0bdd0784b867ULL, 0x108207817bb2959cULL },
            { L_,   37, 0x6103c7edd6c6d6c2ULL, 0xf17274f75921b488ULL },
            { L_,   38, 0x726e03f3edfb0ec3ULL, 0x4687500e99845db8ULL },
            { L_,   39, 0xb8c88c4adba49633ULL, 0x4b688e67d0d094b5ULL },
            { L_,   40, 0x4ac3ebf5471a9386ULL, 0x8529cee19fa6909aULL },
            { L_,   41, 0x7f277fd79e6ced41ULL, 0xbb51923ce9ef887dULL },
            { L_,   42, 0xdd3aae29dcc3ef24ULL, 0xf43a7f5788205908ULL },
            { L_,   43, 0x9908fa9e66196df3ULL, 0xa229e056ae0a63e9ULL },
            { L_,   44, 0x13175e3092e165beULL, 0x461882634071a9ddULL },
            { L_,   45, 0x21be73b17093c87eULL, 0x2fabc064916314d2ULL },
            { L_,   46, 0x7ca7e97f58e9402bULL, 0xe1c28faa7ca4e3a0ULL },
            { L_,   47, 0x0bbfc54089b0b9cdULL, 0xf44a002720880d2bULL },
            { L_,   48, 0x8d95cbf4473a8043ULL, 0x69cf34cf5514ebdfULL },
            { L_,   49, 0x3849e1a20eef6a2cULL, 0x867b3e1d401de1cdULL },
            { L_,   50, 0x8c33a146ae2d2c6fULL, 0x69c12b0c7b5a4205ULL },
            { L_,   51, 0x99c54aae2db2bd62ULL, 0x4ce6c98039120cb8ULL },
            { L_,   52, 0xd6350e6467e6a65cULL, 0xab12e7e98f2b8342ULL },
            { L_,   53, 0x426586e82ebf01d2ULL, 0x6068a33a98597a6cULL },
            { L_,   54, 0x9e85265fea170d71ULL, 0x6b16be5ddcd2e736ULL },
            { L_,   55, 0x28a99f47fd6a92ddULL, 0x7936b01ee4bfb4cbULL },
            { L_,   56, 0x9a5b3eb388417a1fULL, 0xc2f28a4708b8e17aULL },
            { L_,   57, 0xd0d5f30e251af805ULL, 0xa9c6f695ea175252ULL },
            { L_,   58, 0x83a8d4e6d20faeafULL, 0xc6b5d8362083f608ULL },
            { L_,   59, 0xff0d0c4009aed7ddULL, 0xc4398438778822b3ULL },
            { L_,   60, 0x7c5c9359d2060080ULL, 0xd66fc5b5bdb4abbbULL },
            { L_,   61, 0x6fb193cd197f5a40ULL, 0x8ecdd9623ebe7ee5ULL },
            { L_,   62, 0xd8041e29bfb7cb55ULL, 0x98c4b7b8ce8b46c6ULL },
            { L_,   63, 0xc9a1670b5251d40cULL, 0xd4683c0eabf01d8fULL },
            { L_,   64, 0x32804305fcf0dccbULL, 0xbbd2d15a733cad85ULL },
            { L_,   65, 0xe75379880beded18ULL, 0xa333419c46b509baULL },
            { L_,   66, 0xa6a07fdf9d97c3b6ULL, 0xc8ea849fc4994f98ULL },
            { L_,   67, 0x2c8eec02a58c0afcULL, 0x96d3b0d8ffd2b0b1ULL },
            { L_,   68, 0xaa19e94ec40f808eULL, 0x129ac14b87905221ULL },
            { L_,   69, 0x49ea7d531c7cd969ULL, 0xeb2bb5e619288456ULL },
            { L_,   70, 0x8d41defd1c772a94ULL, 0xe550d226c04cdee6ULL },
            { L_,   71, 0x106c42fb6d03643aULL, 0x7b4a8a0425254c1dULL },
            { L_,   72, 0x68a0e445ffa008c2ULL, 0x5b37838e406be4e6ULL },
            { L_,   73, 0x562e14b707635f49ULL, 0xd796ae34b85a1a09ULL },
            { L_,   74, 0x4c6dc1b3b50fb179ULL, 0x2099f67239bfaaedULL },
            { L_,   75, 0xaea2eb8f179ffdd0ULL, 0x93b9bff9ce41d6a4ULL },
            { L_,   76, 0xa9a01868c7f26b03ULL, 0x9bff6b5ca47c5130ULL },
            { L_,   77, 0x9179ecf1ee2c5754ULL, 0x98bb54f8b46a3491ULL },
            { L_,   78, 0x45fa97ecc0f9eddeULL, 0xa223b47e08b05f90ULL },
            { L_,   79, 0x9fdf192f7590b0f2ULL, 0xd8be0efd2c787902ULL },
            { L_,   80, 0x9c896427d0260253ULL, 0x229168fb16a20f07ULL },
            { L_,   81, 0x3f8b638b7412932dULL, 0x73fbde572b4e2fb1ULL },
            { L_,   82, 0x79be2b57b8f0ef92ULL, 0xe35b91e033d39318ULL },
            { L_,   83, 0x1d8427d83452edd2ULL, 0x62c2b0e7a6823624ULL },
            { L_,   84, 0x87cf35cd635f4af5ULL, 0x8b3aa7a6c68d937bULL },
            { L_,   85, 0x0285854d7b160eacULL, 0x408684da5b775c5dULL },
            { L_,   86, 0x475b2feff64f824fULL, 0x1372575ee4bf025eULL },
            { L_,   87, 0x0bf84ed2ca6fa32fULL, 0x2b68b33c5b457ab7ULL },
            { L_,   88, 0x421971da9e796167ULL, 0x762a946d1bb048edULL },
            { L_,   89, 0xc01ad7f123a87db8ULL, 0x5caf0b1a8720cfe0ULL },
            { L_,   90, 0xc4a144921fc3809cULL, 0xfe910811f45ca299ULL },
            { L_,   91, 0x124fda8cffd1d7aaULL, 0x3147a8cbf61ce539ULL },
            { L_,   92, 0x5e330d174045eda6ULL, 0x30369afa058c3fabULL },
            { L_,   93, 0xa0c8c235ecdfc391ULL, 0xeb146ad72c37a043ULL },
            { L_,   94, 0x66d02602ba96714aULL, 0xa92d822f484199d9ULL },
            { L_,   95, 0xee6c70900738d6f3ULL, 0xe0c20a8a8d414b57ULL },
            { L_,   96, 0x5eb502d5933a2648ULL, 0x8efe0729ef31acfbULL },
            { L_,   97, 0xec2f3747f98b5486ULL, 0xde8b4815964dbe7fULL },
            { L_,   98, 0xd973070793467262ULL, 0x72e7f9aeb85b8fc8ULL },
            { L_,   99, 0x3a9dc5b1c1b9860cULL, 0x5a58565c9fd1e295ULL },
            { L_,  100, 0x4c054dca90fd4620ULL, 0xa0ce99b8d21dea27ULL },
            { L_,  101, 0xd355c2ba015dafecULL, 0x50f509099eacc023ULL },
            { L_,  102, 0xdebb2b21cf7a1b2fULL, 0xba4c2966c1ad2817ULL },
            { L_,  103, 0x19f37db375a0f891ULL, 0x8fefa37ac85c13e7ULL },
            { L_,  104, 0xe8800b348f682bdaULL, 0x1d12cd3a84187d25ULL },
            { L_,  105, 0x2ce858f9a7ece67aULL, 0x487c9a19f5dbac59ULL },
            { L_,  106, 0x4cccfc7915c76b20ULL, 0xdb55d9134316e2d4ULL },
            { L_,  107, 0x07784c198e82a48fULL, 0xddf954547d6819d8ULL },
            { L_,  108, 0x814fe53c459987cfULL, 0x21352342ffae2930ULL },
            { L_,  109, 0xee35ea7e7b1231acULL, 0x833f66fb7b62ac55ULL },
            { L_,  110, 0x62b7865158d676afULL, 0xa468114cd84492ffULL },
            { L_,  111, 0xf06064f404918049ULL, 0x4789597cb207eca3ULL },
            { L_,  112, 0xc9853fb99a693bfeULL, 0x1ef5f0c27ec54299ULL },
            { L_,  113, 0xe9bf261162b2b664ULL, 0xa7dcb26940b88523ULL },
            { L_,  114, 0x81dbb439e30d8787ULL, 0xf273cbdc9b5ec4d5ULL },
            { L_,  115, 0x9ed13417db2db665ULL, 0x1f63265600d6b531ULL },
            { L_,  116, 0x8040abbfe674a44dULL, 0x05af1a73c61a5fceULL },
            { L_,  117, 0x373a3ccec7a74e60ULL, 0xd05311ad70317195ULL },
            { L_,  118, 0xea9e958a649730b4ULL, 0x2bd3013bdddbe7fcULL },
            { L_,  119, 0xfc13a05166212e17ULL, 0x20db9353f0e7b30eULL },
            { L_,  120, 0xceb18490bf3a1598ULL, 0x7b1a6258d17d18afULL },
            { L_,  121, 0xd024fa0f53b67d7eULL, 0xbe4990658e972ea5ULL },
            { L_,  122, 0xcf8c6fdf9789ac4fULL, 0xe0aaad04e0725422ULL },
            { L_,  123, 0x36c32d13751ac929ULL, 0x7d79a28a88846dd6ULL },
            { L_,  124, 0x31c0ce8039b1c0a9ULL, 0x82cd5274e7dbe7b9ULL },
            { L_,  125, 0xab381b9cdfd93f1eULL, 0xa9774dfe9164a6afULL },
            { L_,  126, 0xd0e70f8b54a7f0e0ULL, 0x2097eac448302589ULL },
            { L_,  127, 0x121de9c1872e6e25ULL, 0x49d38ef1c9c5aee0ULL },
            { L_,  128, 0xb95bc27e9608f5c6ULL, 0x326dc66646a1f2b3ULL },
            { L_,  129, 0x10dfa0bc433f30b2ULL, 0xd465c7c0e6aeb42eULL },
            { L_,  130, 0x8c6c93f75c66ced9ULL, 0xfbac0ed4e3c8016cULL },
            { L_,  131, 0xea6a6c1ff0e5c503ULL, 0x366c2423f8908b42ULL },
            { L_,  132, 0x8a790ca61537db9aULL, 0x4d1ede5d1afd6821ULL },
            { L_,  133, 0x0551c6735ca3bff8ULL, 0xe298eb0b28a81609ULL },
            { L_,  134, 0x1e866b3dbc4d9e93ULL, 0xd2166bf3fc02edd0ULL },
            { L_,  135, 0xb8c59403887674cdULL, 0x42c319f7c1560eeeULL },
            { L_,  136, 0x4edb17840a225752ULL, 0x6b00401c65dfa2deULL },
            { L_,  137, 0x018f0155017c0cb3ULL, 0x82e22fcac98bca0eULL },
            { L_,  138, 0x2a90a5c7a8511a16ULL, 0xb890b7e2c42a7ee3ULL },
            { L_,  139, 0x14bc5d07a5208e98ULL, 0xfd37467f427cda9bULL },
            { L_,  140, 0x8d0cdcb2643987cfULL, 0xf20ba31f766b46d1ULL },
            { L_,  141, 0xf95750edd6bcdb0fULL, 0x2342340252016880ULL },
            { L_,  142, 0x23113cd73d6af3c5ULL, 0xfa0339a4436ce542ULL },
            { L_,  143, 0x2cf6d43dbd71298fULL, 0xb17df61c532549e6ULL },
            { L_,  144, 0xab079d8722ffb858ULL, 0x15401369986674bdULL },
            { L_,  145, 0xd7db3d34eec2c0d4ULL, 0x68a3f315633ef2c3ULL },
            { L_,  146, 0x095842f49e19bc83ULL, 0x7dcbfd4781a9e6dcULL },
            { L_,  147, 0xb382c5f7d121534eULL, 0x5d0b7efd9d1b427bULL },
            { L_,  148, 0xd59d88e4c9c11465ULL, 0x0005e2f416e62b13ULL },
            { L_,  149, 0x98e6a532bcd9a132ULL, 0x42cfaf21bc2c0da4ULL },
            { L_,  150, 0x2a86fc96edaf1bbcULL, 0x0b24dfe2b2a0c8a6ULL },
            { L_,  151, 0xfb5ddbfa943001c3ULL, 0x8b87272426dde77dULL },
            { L_,  152, 0x9e77674e8b66cfe0ULL, 0xf191edb944736d9dULL },
            { L_,  153, 0xea71cc7682dc11f3ULL, 0x880a11b60f334d86ULL },
            { L_,  154, 0x9b91c0ec057bc5c3ULL, 0x1b0d35bf1e6948a0ULL },
            { L_,  155, 0x3a5141869de5f733ULL, 0x599cc0b631c7dc71ULL },
            { L_,  156, 0xc86527518acf4efcULL, 0x6ec198cd5369b72eULL },
            { L_,  157, 0x7f5cc0d651d04b40ULL, 0x1499e80b3e7db421ULL },
            { L_,  158, 0xcaab5a6e0d856c76ULL, 0xda475daa537b1d30ULL },
            { L_,  159, 0xe976b3467cba4635ULL, 0xcbf020164925c716ULL },
            { L_,  160, 0x8e420b6c6f56748fULL, 0x724267a1004cbd84ULL },
            { L_,  161, 0xef1b0c9180b52440ULL, 0x18b8be0e62f056f1ULL },
            { L_,  162, 0xf957c1daf2d86c9fULL, 0xe6e7318cf6365efdULL },
            { L_,  163, 0x5b21b3e1c6fb3319ULL, 0xd549054c0e7c29c8ULL },
            { L_,  164, 0x8557590b9dfa758dULL, 0x5c6c904c1b991887ULL },
            { L_,  165, 0x72a84189e5596ee8ULL, 0x62b12aee823f645aULL },
            { L_,  166, 0xe6efc35fcf5c474cULL, 0xe37ee0d19fe75b78ULL },
            { L_,  167, 0x8233cebad3affd26ULL, 0x1b9814b33f59b6d5ULL },
            { L_,  168, 0x5fa6ef520a398fb7ULL, 0x6ec0e417d21fbcb3ULL },
            { L_,  169, 0x2431882342156d76ULL, 0x44a376c263b08178ULL },
            { L_,  170, 0xb4ce3d784f56d2b5ULL, 0x6330888239d06702ULL },
            { L_,  171, 0xc01e946d6901e55bULL, 0x153cb146b25c1ccbULL },
            { L_,  172, 0xa8e2e2d3afa654c9ULL, 0x90e23eac29b72308ULL },
            { L_,  173, 0xc5f65e18df70e2ffULL, 0x0f645bacb1c9db44ULL },
            { L_,  174, 0x68c2af7b99e231c0ULL, 0x47df51885e801232ULL },
            { L_,  175, 0x96faef18626ffa47ULL, 0x58e0870baa4f58f9ULL },
            { L_,  176, 0x9b33dc23093134d1ULL, 0x225ffafbc256239dULL },
            { L_,  177, 0x5a73568521fe9012ULL, 0x1eef398147929e12ULL },
            { L_,  178, 0x4a5682a6e684e169ULL, 0x90ea3fc31c4c3fb8ULL },
            { L_,  179, 0x1f10fae6712e96e3ULL, 0x858b4dea7276eafaULL },
            { L_,  180, 0xfb3984a139f6a732ULL, 0xc798db77bfe6b1d4ULL },
            { L_,  181, 0x33d1d4da5aa186deULL, 0x26898a367c9b6414ULL },
            { L_,  182, 0x58b0761276f55219ULL, 0xa290879472ca60f6ULL },
            { L_,  183, 0x65ae5e26adbfa68dULL, 0xbbdd26146a8e93eaULL },
            { L_,  184, 0x918b10a3dad7ea68ULL, 0x86e93670dcf7dbfcULL },
            { L_,  185, 0xf1fdfd7d8f44cee5ULL, 0x752ac633924d8640ULL },
            { L_,  186, 0x6c29840672b70521ULL, 0xa57462f4ea7bef7fULL },
            { L_,  187, 0xb95651dadfaf3059ULL, 0x65a6d0ef0b9440f3ULL },
            { L_,  188, 0xd192e579dda5b415ULL, 0xdbadb459417df370ULL },
            { L_,  189, 0x96161571fd7c8dffULL, 0x1ad769257bb0e512ULL },
            { L_,  190, 0x3449b644b701c910ULL, 0xafe4ad872e3e3089ULL },
            { L_,  191, 0x6a6a82d938479c9aULL, 0xcc469bbdc38968afULL },
            { L_,  192, 0x42b96e6ebd55055bULL, 0x2e9b4537562255d8ULL },
            { L_,  193, 0xf1e0667d744745f9ULL, 0x5893ac16cef908c0ULL },
            { L_,  194, 0x6835762930a4ff11ULL, 0xcf020f72de7a0785ULL },
            { L_,  195, 0x340e4e6331347f4fULL, 0xd1416adf80b56ddcULL },
            { L_,  196, 0x093c3e59a2a5311fULL, 0x9f9f05960327f4deULL },
            { L_,  197, 0xdf42abe95c0c855bULL, 0x80ed0cd7c83d2b5bULL },
            { L_,  198, 0x655c00c003c1a19dULL, 0x4c5b7150050d4c15ULL },
            { L_,  199, 0xc07e811da1997f8bULL, 0x99ec2ab3905e2ef5ULL },
            { L_,  200, 0xde8dffb3e79742b3ULL, 0x2fcf3edac1f4258dULL },
            { L_,  201, 0x16f1f2ab086ce7f2ULL, 0x8cab61eed41935baULL },
            { L_,  202, 0xfac46406c5db9c2eULL, 0x27fed47e635f75b9ULL },
            { L_,  203, 0x31bce84fa5e60610ULL, 0xcf88d84cdf9bcf01ULL },
            { L_,  204, 0x58bb1c042b5ef09aULL, 0xeb06956bc9543d08ULL },
            { L_,  205, 0xbf7391140251ca9aULL, 0xe20445eabb76ed64ULL },
            { L_,  206, 0x692a7f55c891fb85ULL, 0xc92f4a25fddb839dULL },
            { L_,  207, 0xfdb0c566fe5100a3ULL, 0x97beb6780e3c1d33ULL },
            { L_,  208, 0x99a8e7ce919a3a33ULL, 0xf7f439701490b60eULL },
            { L_,  209, 0xeee9641c042726dbULL, 0x20b805066c0836a7ULL },
            { L_,  210, 0x30cc2a31a45cd1efULL, 0xcff89691dce61847ULL },
            { L_,  211, 0xc8f8138af0d52010ULL, 0x7ba9901bb7d59f09ULL },
            { L_,  212, 0x82ba7d4213eefad9ULL, 0x058c56af206512e7ULL },
            { L_,  213, 0x8e483a44edb065f3ULL, 0x834bb64332decb81ULL },
            { L_,  214, 0x43c01a237211556fULL, 0x6f52ce94db9ec444ULL },
            { L_,  215, 0x091096faa6b7856dULL, 0xc982212a1a1fddf3ULL },
            { L_,  216, 0x360f83f1252be43dULL, 0x5683c739641a9d05ULL },
            { L_,  217, 0x57948487dfbb66e1ULL, 0x07d1031d0fca2236ULL },
            { L_,  218, 0x7e7a52cba4e9a1fbULL, 0x9d62372f566fa3eeULL },
            { L_,  219, 0x17eee50a64ee237aULL, 0x42767e16757e4532ULL },
            { L_,  220, 0xfedcf22d6f53d8f2ULL, 0x657355afa9eb64d9ULL },
            { L_,  221, 0x79d5c5a1825f0b61ULL, 0x36aba535e5e2dbefULL },
            { L_,  222, 0x2f4e59f3c99a68e0ULL, 0xe284237fc7e79e18ULL },
            { L_,  223, 0x2d8dd420035aa5d2ULL, 0x440ee8f92487c961ULL },
            { L_,  224, 0x54b3f21a03b828a9ULL, 0x347a721627ca9ec4ULL },
            { L_,  225, 0x754993737f9decadULL, 0x8681c7e799ca2593ULL },
            { L_,  226, 0xa821bc9bfaae467aULL, 0x979319d3fb33bc6eULL },
            { L_,  227, 0xfc2f800bb50ef8a9ULL, 0x86c8c8fe64762e0eULL },
            { L_,  228, 0x16263e7cd2b756d1ULL, 0x3d51ad73c309eae0ULL },
            { L_,  229, 0xd0fca6314dac85f2ULL, 0x8bbd6f0cbe244e75ULL },
            { L_,  230, 0xdf2d2461dd7b8eb4ULL, 0x4da213c97380b58bULL },
            { L_,  231, 0x52179938c26de971ULL, 0xb19f47545d9f0000ULL },
            { L_,  232, 0xb56ff0e1ce4949aeULL, 0x17cb930286f4bd96ULL },
            { L_,  233, 0xfc9e2f82b73fc5cbULL, 0x7ce0041e7a9de094ULL },
            { L_,  234, 0x3b31f850e4d99e95ULL, 0x2505e87421417b55ULL },
            { L_,  235, 0xaf1a602fc33dd585ULL, 0xbdf0825bcc958a97ULL },
            { L_,  236, 0x0d8b02e8664b716eULL, 0x969a98354a1715a3ULL },
            { L_,  237, 0xe4aa7fb1a61ba2c1ULL, 0x9e58a0fc723892b9ULL },
            { L_,  238, 0xbd9c9c1e56ff4dd1ULL, 0xe9ea5a77d5976df7ULL },
            { L_,  239, 0x67eae446fb391f36ULL, 0x4411180431d3226eULL },
            { L_,  240, 0xac35043b6571d562ULL, 0xc6935503a658b01dULL },
            { L_,  241, 0x4ac5bc1faea685c2ULL, 0x522b4d4282752e71ULL },
            { L_,  242, 0xa668175131cb0a55ULL, 0x2effa2abd75425b9ULL },
            { L_,  243, 0xbda95eacaa1e13aaULL, 0x798dd948477c2cfbULL },
            { L_,  244, 0x70fd9ee64abd98f5ULL, 0x88da2845837d86e6ULL },
            { L_,  245, 0x70f32d97e150151eULL, 0xb32a70e1cafb7ff4ULL },
            { L_,  246, 0x3930961a574fd529ULL, 0xb52f574e8c6777b6ULL },
            { L_,  247, 0xe208148a7b43fdecULL, 0xb6c6f8f6aa0886c6ULL },
            { L_,  248, 0x8af14a3ea4b3e0d3ULL, 0x2e452f03e190bde3ULL },
            { L_,  249, 0xa1292c5e181f1903ULL, 0x3054ac03e05ea09cULL },
            { L_,  250, 0x82b610c51bb69d0eULL, 0xbdf134ac071e21f5ULL },
            { L_,  251, 0x67f48f62bc7c1feeULL, 0xb155d10f62c1a167ULL },
            { L_,  252, 0x57f2e7fd5cc97697ULL, 0xc31b0d8963d053e9ULL },
            { L_,  253, 0xd8167888cf88bb88ULL, 0x925460e6c78e899cULL },
            { L_,  254, 0xdd38f3f330eded6fULL, 0x7bb1ccfa0104c58dULL },
            { L_,  255, 0xeedcfd0dfb0a8733ULL, 0x2c2d84e592c2fb51ULL },
            { L_,  256, 0x12fa48c508d0b56dULL, 0xa58a7d098c8ebca5ULL },
            { L_,  257, 0xa75b10461a97e28eULL, 0xb75a0b0503102e84ULL },
            { L_,  258, 0xf4acd9c759460c85ULL, 0x77373e614a48e60fULL },
            { L_,  259, 0x42f043ab42cca6aaULL, 0x8bb09805903ce911ULL },
            { L_,  260, 0x68d3880fc7bfe38dULL, 0x8d3618b649d6903eULL },
            { L_,  261, 0xfe79d0647bd17994ULL, 0x4d96e8d9d76c0f00ULL },
            { L_,  262, 0xa7045f2dd390919cULL, 0x1ba0750ec7d3f9e5ULL },
            { L_,  263, 0x19dc323525ee3083ULL, 0xb6bd807a3207cf90ULL },
            { L_,  264, 0xe3c72371d1a0d79fULL, 0x5f4557d3e077bfdeULL },
            { L_,  265, 0x104ebcb8c976f1ebULL, 0xb90de6610a26064bULL },
            { L_,  266, 0x6111d50ce34d840aULL, 0xf37acccb2541cd72ULL },
            { L_,  267, 0x16da273e8b18aeb1ULL, 0x2d5bb2d5a1bff479ULL },
            { L_,  268, 0xef7494a477d31e4eULL, 0x6f4b90cad124c3eeULL },
            { L_,  269, 0xa04e84579c3608d1ULL, 0x2e00357e595bf381ULL },
            { L_,  270, 0xe6814ec93f1f6e5eULL, 0x01a2b1457ef7cd22ULL },
            { L_,  271, 0xb3f7565e6deec11eULL, 0xed744ec26fb7bea6ULL },
            { L_,  272, 0xe15709719e729c51ULL, 0x89f4566b94427b9aULL },
            { L_,  273, 0x737f571e8d133eecULL, 0x633a385753bff0c5ULL },
            { L_,  274, 0x93c56fe03ea45129ULL, 0xfc8987e74258294bULL },
            { L_,  275, 0x3ece400605739697ULL, 0xe4de3e755e5d5106ULL },
            { L_,  276, 0x7fd55f2d94b8f4a1ULL, 0x1c06ea4447ba38ddULL },
            { L_,  277, 0xcea67eab442df32cULL, 0x1bfe62958b27c18cULL },
            { L_,  278, 0xc722c4ab814f3fcdULL, 0x92842cbeb5d218b5ULL },
            { L_,  279, 0x53f2dbae79a88b5cULL, 0x060d345418400926ULL },
            { L_,  280, 0xfdfe1e42bdd1e336ULL, 0x73fedd5b8aea6617ULL },
            { L_,  281, 0x51ddc7dae15f9cd1ULL, 0x1c8fa1d38c461636ULL },
            { L_,  282, 0xeee7bc10d35d292fULL, 0xf78f7e1863da6f64ULL },
            { L_,  283, 0xb06736f5957931f4ULL, 0x35462601cbcda620ULL },
            { L_,  284, 0x692da2bb983b4cb4ULL, 0xfadad5bec8514d87ULL },
            { L_,  285, 0x254db2e7fb827a55ULL, 0xbeb1639ca9af97c0ULL },
            { L_,  286, 0x5801ed5b57d1b0f3ULL, 0x9e773b7885ba04fdULL },
            { L_,  287, 0xd0df634dfd574615ULL, 0x51962b5cfc2ab2baULL },
            { L_,  288, 0x7cade44d8202c31bULL, 0x2dd7d9ec0a87efa9ULL },
            { L_,  289, 0x4128a725e5b8de4bULL, 0x9aa371251d149f9dULL },
            { L_,  290, 0x895cda3cf4442ff1ULL, 0x9c92dc736a783df6ULL },
            { L_,  291, 0xfd34dc1d986740ecULL, 0x95767a6bf7fce565ULL },
            { L_,  292, 0xab0f1a519b7dec73ULL, 0xda4ba6a9695e9b90ULL },
            { L_,  293, 0x933cc561d7346122ULL, 0xa38b32283718c4ebULL },
            { L_,  294, 0xa0ac6f429a68479cULL, 0x851a7cd9423d5a2aULL },
            { L_,  295, 0x367854344fca9330ULL, 0x400363cd55c98772ULL },
            { L_,  296, 0xa236ab0173075557ULL, 0x5f51db0316ca0784ULL },
            { L_,  297, 0x5a6b441c2914652bULL, 0x0cc9ab0af8307651ULL },
            { L_,  298, 0x4d027d839e6825f0ULL, 0x04a389107b11402bULL },
            { L_,  299, 0xf713ff75b086345eULL, 0x350a9765744d0154ULL },
            { L_,  300, 0x796b7fd706d2f796ULL, 0x146ffb69675a6612ULL },
            { L_,  301, 0xa315ab34ef909b90ULL, 0x24b0c68f89b8247bULL },
            { L_,  302, 0xfd6c92c431c6cbd6ULL, 0xa24bc3907c2e02c3ULL },
            { L_,  303, 0x521c095e47b448bcULL, 0x7e60f0fda3bb9786ULL },
            { L_,  304, 0x9305831cc70b764bULL, 0x2a33c84d80b14378ULL },
            { L_,  305, 0xd4879677cb552e4bULL, 0xa4c0f29560456a78ULL },
            { L_,  306, 0x703005c1ccc9fe2aULL, 0x2e9e00f3db89d1f7ULL },
            { L_,  307, 0x4bff4c56b95b5e1aULL, 0xa4681b4b3ccec225ULL },
            { L_,  308, 0xd19619a6a1809abdULL, 0xcaf9a53d51af55c9ULL },
            { L_,  309, 0x5e9c15602430b0b1ULL, 0x2cf80e2fa45593f9ULL },
            { L_,  310, 0x83b7593897f2c67dULL, 0x8c951d3f8fd420cdULL },
            { L_,  311, 0x1f39f12ddaf62d44ULL, 0x3d8c6e13a901f05aULL },
            { L_,  312, 0x527929ffbd78f2deULL, 0xd65576bc51611d7bULL },
            { L_,  313, 0x5d6f3d4571ccf1d6ULL, 0xcf7f343206355dafULL },
            { L_,  314, 0xfd25b3dc1ea3eb54ULL, 0x6db085b39f2d3b1cULL },
            { L_,  315, 0x71be5a3a55f751feULL, 0x0b34f77102737cf2ULL },
            { L_,  316, 0x568e3bd8f7a60eb7ULL, 0xfa6ae11eab58ad26ULL },
            { L_,  317, 0x74f326bc4c63e019ULL, 0xc6d2a25ba646afc3ULL },
            { L_,  318, 0x2bf5d19705ad62ecULL, 0xe7fbf0dd322f53a8ULL },
            { L_,  319, 0xc7b50e73b217022dULL, 0x7c50bf8bef966705ULL },
            { L_,  320, 0x7561cb7ba27ad075ULL, 0x9741f1bd495a1e23ULL },
            { L_,  321, 0x8916b2beacbc5892ULL, 0xe46d22ed054b4c50ULL },
            { L_,  322, 0x7f5e2be1c3b3fa97ULL, 0xedd1a6cb45314c65ULL },
            { L_,  323, 0xb00daa3b6151a9faULL, 0x5b87805f710659acULL },
            { L_,  324, 0xa0a86be362a1e93dULL, 0x8c86b439cae00a85ULL },
            { L_,  325, 0x9baa3f97cc8659d6ULL, 0x7da7c6d7f84316c0ULL },
            { L_,  326, 0x5c2651c10dec52b7ULL, 0x2b57eb87d1287351ULL },
            { L_,  327, 0x661a97fe8b13c684ULL, 0x6ea26b59629866c4ULL },
            { L_,  328, 0x4a1f504ff0dde96dULL, 0x334e6da7ff576504ULL },
            { L_,  329, 0x8c74fb114dac6f6dULL, 0xfc34438e5070eabfULL },
            { L_,  330, 0x64acaffdb46851c5ULL, 0x1f0ba0b130d94876ULL },
            { L_,  331, 0x966c168887798174ULL, 0x0e55b11edaa8a9ecULL },
            { L_,  332, 0x00ccc12fb3f28d1fULL, 0x1119442cf7450034ULL },
            { L_,  333, 0xb8d3b77652ef1883ULL, 0xd23fda0c43da7871ULL },
            { L_,  334, 0xa5b35520c5f5c70bULL, 0x6ddc1cc703c2a27eULL },
            { L_,  335, 0x65b74ccd47c6cf9fULL, 0x9d89859dafecf510ULL },
            { L_,  336, 0x3aa33eab543b6196ULL, 0xdfb0412f429d321fULL },
            { L_,  337, 0x273a318199fd0388ULL, 0xabae22dd5056cd7bULL },
            { L_,  338, 0xfb98d32e0ee57d51ULL, 0xae699fb84b5d7d61ULL },
            { L_,  339, 0x4e8a28c1f0c85c65ULL, 0xcb251aee0432fe3aULL },
            { L_,  340, 0xe274d439e2dbdce5ULL, 0xc7fb4b32d05e858bULL },
            { L_,  341, 0x9f13ab31f36b485cULL, 0xb00f50d1f0eabb6aULL },
            { L_,  342, 0xa1ad8289eb4ff48dULL, 0x97563c9efe6b13beULL },
            { L_,  343, 0xe453a0608dc7f85fULL, 0x48b2352f83d9045fULL },
            { L_,  344, 0xe6dfa2f316978c55ULL, 0xa7c03ac439e16be8ULL },
            { L_,  345, 0xd592e9c5a621a473ULL, 0xb4a4819cf807d4b3ULL },
            { L_,  346, 0xd22d3d6fd97f2a21ULL, 0x2723be783328eddbULL },
            { L_,  347, 0xe0c6abcd92a459c4ULL, 0x3beec684e5d8c6d0ULL },
            { L_,  348, 0xd4a759b7076b1dccULL, 0x5cf0c8ebbf67db1fULL },
            { L_,  349, 0x5a092fbfb4e01ea1ULL, 0x6fcfb6edcb4610efULL },
            { L_,  350, 0x37a8d4c9fdef5577ULL, 0x52ee29112536af60ULL },
            { L_,  351, 0xba79e6da86913c8aULL, 0xa472f05a96dd39abULL },
            { L_,  352, 0x07b19997b5e99f55ULL, 0x63196d02ed110a8aULL },
            { L_,  353, 0x9700034cafd2f207ULL, 0x5038e93a1e865033ULL },
            { L_,  354, 0x9e62063b67a7b25dULL, 0xdfc0ffdd82eaec14ULL },
            { L_,  355, 0x67190df397eba45eULL, 0x9cecab28d57d5c33ULL },
            { L_,  356, 0xb5dfedb295dfbaf9ULL, 0xaf29c570ac8b2d5eULL },
            { L_,  357, 0x931682acd8872741ULL, 0xef046582c8a21e31ULL },
            { L_,  358, 0xef39f70b74083052ULL, 0x023035f65ff3708cULL },
            { L_,  359, 0x32ae3fa6649891feULL, 0x351348c4008c511cULL },
            { L_,  360, 0x3bf9810479161796ULL, 0x5f6f790e0271a5e7ULL },
            { L_,  361, 0x8be20513fbfe318bULL, 0xad809140ae47b2b8ULL },
            { L_,  362, 0x6694aa66dad451c7ULL, 0xf66990e8d7cf1b6bULL },
            { L_,  363, 0x3cf54e83c6a136daULL, 0xd1dba049808322d1ULL },
            { L_,  364, 0xff03532b04e0d523ULL, 0x28a514a94b67de9bULL },
            { L_,  365, 0x2cf37886b8b64bc4ULL, 0x1e771a705dd22054ULL },
            { L_,  366, 0xf08437ba6c9cca4bULL, 0x9de21f6c77f526dbULL },
            { L_,  367, 0xe7b2993f9c2d1c9cULL, 0x5fee4b24ef791e95ULL },
            { L_,  368, 0xeede15958c9e505aULL, 0xdc8520e99fdbafabULL },
            { L_,  369, 0x0b515894fba0a4edULL, 0xcf0c8582b49cefdeULL },
            { L_,  370, 0xf87006f9048cb76bULL, 0xf034b219bbc627c2ULL },
            { L_,  371, 0x959c4f7bb405d396ULL, 0xab32de5ff7a1b445ULL },
            { L_,  372, 0xbd993b740a8a349aULL, 0xf2b903ad2ab9a04aULL },
            { L_,  373, 0xdc828fce5df263efULL, 0x17dd57b6d1470d91ULL },
            { L_,  374, 0xc04b296f1d85bf96ULL, 0xf9c2cc9240354bd0ULL },
            { L_,  375, 0x144d5f631f7b37f8ULL, 0x8165cb46ef3547a1ULL },
            { L_,  376, 0x3518dd81c6e533afULL, 0x11d29cbef9213139ULL },
            { L_,  377, 0x051aec6a9ae0b4a3ULL, 0x63b90dafe7b57837ULL },
            { L_,  378, 0xa079315df26651c3ULL, 0x0f6faba456a7d90dULL },
            { L_,  379, 0x12184be350e6a10dULL, 0x29fa78a4aa9f835cULL },
            { L_,  380, 0xa936724c65a33973ULL, 0x468ec221e4b8c234ULL },
            { L_,  381, 0xd7e5aae8212fdffdULL, 0x053ddf94fb777566ULL },
            { L_,  382, 0xa301ad411ba3d62cULL, 0xa7582a647b5eb7f0ULL },
            { L_,  383, 0xcaf423b02e7930faULL, 0x8c11c14939b66d24ULL },
            { L_,  384, 0x02e0b345fe4bdf91ULL, 0xafd01f9467dfec88ULL },
            { L_,  385, 0x2f14932a30499eecULL, 0x87f1bface063c6ccULL },
            { L_,  386, 0x1e41f75c3e471027ULL, 0xa68cf2892a017993ULL },
            { L_,  387, 0x5063226c18bc69cdULL, 0xb53df4d999eed5f2ULL },
            { L_,  388, 0x4da084d3739549b1ULL, 0xd41364d28a33aa26ULL },
            { L_,  389, 0xdef53eb4d843200dULL, 0x13c6b70ff97a649dULL },
            { L_,  390, 0x98d0859dc54b9c11ULL, 0x3534a622e9ce16a7ULL },
            { L_,  391, 0x8267df2e22c39945ULL, 0x0f555515e0aa471aULL },
            { L_,  392, 0x7129b164d7a4b577ULL, 0x24d57e295fcd67bbULL },
            { L_,  393, 0x8e99f2fb59292913ULL, 0x8724d3727b123e88ULL },
            { L_,  394, 0xb26e8bde949379c0ULL, 0xfce38ac387ea81edULL },
            { L_,  395, 0xfc7a4facf9936be7ULL, 0xfc904636c46ce8eaULL },
            { L_,  396, 0x80a60367698a6d52ULL, 0x105f085dd596cb9eULL },
            { L_,  397, 0x57f8ccbf3172c7a7ULL, 0x643fb9d3856fd949ULL },
            { L_,  398, 0x34b6dfba9453d9caULL, 0x3e5ae4140a6c9681ULL },
            { L_,  399, 0x618aedb8a3ffe372ULL, 0xa43ba0c23b7091c7ULL },
            { L_,  400, 0xc74e8dec56e86cb4ULL, 0xc7a21ba9ce67ee14ULL },
            { L_,  401, 0x898d6f1d32993da4ULL, 0xf06bc574abdb27a3ULL },
            { L_,  402, 0x8009860bd899892eULL, 0xfcfc6b04fa5520c0ULL },
            { L_,  403, 0xb13473e1df4b7d92ULL, 0xb037753fee6fbbedULL },
            { L_,  404, 0xc494f4f820a3b7c7ULL, 0xf3dcfa543eb06132ULL },
            { L_,  405, 0x3ff1a3565e8234daULL, 0xf2bc2b35ef7960ecULL },
            { L_,  406, 0x687a45ee249f0310ULL, 0x3657c3d758f31a3bULL },
            { L_,  407, 0x8790952c36b13147ULL, 0xa7845c8f3ae2a677ULL },
            { L_,  408, 0x0d01ece30a97481eULL, 0xd35ef47e2faffeedULL },
            { L_,  409, 0x34a0eb3718c2cd07ULL, 0x9b52a1748c5bd593ULL },
            { L_,  410, 0xf7f6218657ac6d9bULL, 0x944633d7424a7d61ULL },
            { L_,  411, 0x90b9e47f728050baULL, 0x74cf9c1a17509fc4ULL },
            { L_,  412, 0x046403b69ed2c9b2ULL, 0xee3b912cc971c087ULL },
            { L_,  413, 0x1466fd980c9dad49ULL, 0x6f9fef3c68a2c354ULL },
            { L_,  414, 0x1968fd238e1d4986ULL, 0x3e2235e4fd7ad77aULL },
            { L_,  415, 0xc0bf936402b06d85ULL, 0xf7ea7098a5d80299ULL },
            { L_,  416, 0xb601c738ec633adeULL, 0xf553c2662987c2b2ULL },
            { L_,  417, 0x86067b399f3d48c9ULL, 0x952a96655bf3acb0ULL },
            { L_,  418, 0xd713e7b6d0b9a109ULL, 0x6f31bcc66dd358edULL },
            { L_,  419, 0xb35b52fcb76b42ebULL, 0x35e6d58307bb1408ULL },
            { L_,  420, 0xef02d5c81d07c1a9ULL, 0xffe54214307748daULL },
            { L_,  421, 0x3760c269dfe1e570ULL, 0x70e73e0abfd3e1ffULL },
            { L_,  422, 0x2b99a150219af89dULL, 0x150cb89ab8920e31ULL },
            { L_,  423, 0xf0c716104199e74aULL, 0x1229517c9691779aULL },
            { L_,  424, 0xa5cbaec504c47a7eULL, 0x0b305f75e450830dULL },
            { L_,  425, 0x48f59d9a5c31797dULL, 0x2b5a8d807fe9eda9ULL },
            { L_,  426, 0x76194be5bda857feULL, 0x2354d7b6356e6684ULL },
            { L_,  427, 0xcd701eadea995f89ULL, 0x0db4d6ca30c0699eULL },
            { L_,  428, 0xd75192f5d599f29dULL, 0x8ff77a964ec82bbaULL },
            { L_,  429, 0x664b1dd6736db342ULL, 0x121497d8b7a60978ULL },
            { L_,  430, 0x9b837ee1bafba21fULL, 0xb2638679b1f3983cULL },
            { L_,  431, 0x02f59f0ded84e6b1ULL, 0x3152bbb141952ae9ULL },
            { L_,  432, 0x2092a306d94ffbf6ULL, 0x738eadff02834cafULL },
            { L_,  433, 0x78f47f977c733578ULL, 0xf87a0ca55bd90565ULL },
            { L_,  434, 0xa21d2f0fb7cf3de4ULL, 0x9d130e3ff468db65ULL },
            { L_,  435, 0xe76010a42a7732a6ULL, 0xb4990a5b1f2596cdULL },
            { L_,  436, 0x6b7ec7082f5937b7ULL, 0x6fb1fa19a0e8b1cdULL },
            { L_,  437, 0x36d7be1bf0d37481ULL, 0x8451d3bb35239011ULL },
            { L_,  438, 0xd5e30e82fa53fa20ULL, 0x7e3aecca64a9a710ULL },
            { L_,  439, 0xf3120d2a9b8cdc85ULL, 0x7b6cde108ca5a05bULL },
            { L_,  440, 0x5eedd29ca3ea48b2ULL, 0xc1801d080e59cbecULL },
            { L_,  441, 0x562cb4860af33f41ULL, 0x820b144c71639cf5ULL },
            { L_,  442, 0x81dde0d1fc1904e4ULL, 0x5dad561c68c721bcULL },
            { L_,  443, 0x430b3f743fdaff7bULL, 0x16e83462b5a888b2ULL },
            { L_,  444, 0x5d43f6aed653270bULL, 0xf7a2cc942bccca82ULL },
            { L_,  445, 0xd26a59ed2d64c7a3ULL, 0xae52efba88e70fb9ULL },
            { L_,  446, 0xeaeaff1f11be1a23ULL, 0x90bc76b3fb2f85aaULL },
            { L_,  447, 0xc373e406cd716445ULL, 0xa8b9526d43daa29aULL },
            { L_,  448, 0xed598923f11fa012ULL, 0x8452d2c31117c3dcULL },
            { L_,  449, 0x5b7056ae894d2246ULL, 0xa3e652e3d73eac6fULL },
            { L_,  450, 0xa399bc8ba0ac746fULL, 0x8e91bfb7c6021b1dULL },
            { L_,  451, 0xd987411724ca6ae5ULL, 0x2b3105ed1c099cceULL },
            { L_,  452, 0xa8502908933bde5cULL, 0x92c659905711448cULL },
            { L_,  453, 0xe6b609d1e5d1a4a4ULL, 0x6d125ce76add05a6ULL },
            { L_,  454, 0xb1a84431d4bd099aULL, 0x82a6a4538cfbc239ULL },
            { L_,  455, 0x1e061b73fdfc311aULL, 0x8d0409d367ba2c2fULL },
            { L_,  456, 0x7b776a29716bc0f5ULL, 0x2c213cc88aa280faULL },
            { L_,  457, 0xb507d16dc95e07dcULL, 0x18b4832b6fd6203fULL },
            { L_,  458, 0x526d4e7662c22326ULL, 0x42b99c26672ad447ULL },
            { L_,  459, 0x7450982fda41aeecULL, 0xb1188aa292e8fda8ULL },
            { L_,  460, 0xf0813e5e34e26541ULL, 0x55765fccc0a9706dULL },
            { L_,  461, 0x3ac2641a6a4ae83cULL, 0x95f1bda624741f79ULL },
            { L_,  462, 0x21de863c1d9fc254ULL, 0x7a2ef8ed50c92be6ULL },
            { L_,  463, 0xae548c5d1b8b8a8fULL, 0x5565b7128d92f3afULL },
            { L_,  464, 0x5619c99c65e53892ULL, 0x8001070fa71e19c9ULL },
            { L_,  465, 0x726a0e48f27c25a2ULL, 0x7be2d1ba4e4cd0a8ULL },
            { L_,  466, 0xe52b26aed864c2e2ULL, 0x01e785bc4d83bba1ULL },
            { L_,  467, 0x24af906a9c058328ULL, 0xb3751cca10f3a113ULL },
            { L_,  468, 0x537bdebfe99c55ceULL, 0x888667b82ca67db8ULL },
            { L_,  469, 0xd42ca752ded82f04ULL, 0x3bc6dd4ccb9560e9ULL },
            { L_,  470, 0x0d7564859e62c5d8ULL, 0x5478b17b35844d87ULL },
            { L_,  471, 0x44c812b7ea7db393ULL, 0x6af4e08919268890ULL },
            { L_,  472, 0xae0db760db15f0a0ULL, 0x346c30213315b276ULL },
            { L_,  473, 0x7c8325dc3880dad4ULL, 0x0343645c66cf8fbeULL },
            { L_,  474, 0x4ae69b6fccda60deULL, 0xe2ac80c531185259ULL },
            { L_,  475, 0x2a1138b45a870d64ULL, 0x7c9175c806869b12ULL },
            { L_,  476, 0x924b6150e67337abULL, 0x632dd99e4472d6abULL },
            { L_,  477, 0x88388e5cbdb3b480ULL, 0xc17029dc51a39fa1ULL },
            { L_,  478, 0x26cf404c3adecaa4ULL, 0x0671d5534213e34aULL },
            { L_,  479, 0x91889f5c72c1fa67ULL, 0xb20bd7c1963a3dadULL },
            { L_,  480, 0x1fa7b44197a32742ULL, 0xfbecb1bb1f8a6e37ULL },
            { L_,  481, 0x6b45959c5ef7b878ULL, 0x52e3fc6c02572a09ULL },
            { L_,  482, 0x30e4ef9744aeaf1fULL, 0x964c659766e04bb5ULL },
            { L_,  483, 0x62d3e63f06a22d35ULL, 0xee6f6748c20965feULL },
            { L_,  484, 0xef21274d42e8ed58ULL, 0xaee099817c52eabeULL },
            { L_,  485, 0x3ee1e80845971b0fULL, 0xc45f8b525ee1448dULL },
            { L_,  486, 0xfce4de8a5748d56bULL, 0x15145f024e3199daULL },
            { L_,  487, 0x6ebdc75de4b7e883ULL, 0x0f822f1f3b4beb76ULL },
            { L_,  488, 0x9f2e659212a9f23bULL, 0x78848d80af52e0e9ULL },
            { L_,  489, 0x6ab2de22537da430ULL, 0x6a8e39375dbc2b2eULL },
            { L_,  490, 0xc2c762285fbaadadULL, 0xa2c73eccaadd33d5ULL },
            { L_,  491, 0x7f3bfe3f945bd877ULL, 0x3eb9d7ad2fb24b84ULL },
            { L_,  492, 0x40c73cfca35e803dULL, 0x57a483b6998c4b2aULL },
            { L_,  493, 0xe3d60bd657803fccULL, 0x44b0879a6de6f034ULL },
            { L_,  494, 0x392e2883323866baULL, 0x4b168f695e82d715ULL },
            { L_,  495, 0x844d1904f5a31ffaULL, 0x0b1da897720499bdULL },
            { L_,  496, 0x450fa4531799d05dULL, 0x0f14d23791f0bd79ULL },
            { L_,  497, 0xb69d3f199fce7addULL, 0x74c3bab37844d30eULL },
            { L_,  498, 0x38e1e0873eea9b7bULL, 0xd61637df910bf375ULL },
            { L_,  499, 0x8ae6e3442ce921fdULL, 0xb7df446908f939beULL },
            { L_,  500, 0x32f0a424c37160eaULL, 0x803e6408972d7ba7ULL },
            { L_,  501, 0x8ee12f2bc79354d5ULL, 0x573269336db65439ULL },
            { L_,  502, 0x9cebda8ea38bf6d6ULL, 0x2c4a6b5b8a0257f8ULL },
            { L_,  503, 0x125784a3cf28e4b8ULL, 0x5c898676c34d4387ULL },
            { L_,  504, 0xfc77276a879e77adULL, 0x67616a8b1c9c922eULL },
            { L_,  505, 0xe63ca330102d4c84ULL, 0x28d8add587a64071ULL },
            { L_,  506, 0xbc20bad9f1f168d0ULL, 0x91934b6bea3e74a1ULL },
            { L_,  507, 0xf4b527a82814535eULL, 0x74c584d7c7e51611ULL },
            { L_,  508, 0x1917a3a50b2daaafULL, 0x496712f79c721f76ULL },
            { L_,  509, 0x8ede6a2eecee4e3bULL, 0x7ffff3af7c8737c9ULL },
            { L_,  510, 0x4307ef6e051f5fc7ULL, 0x3497be792e6c0ca9ULL },
            { L_,  511, 0xeaa1da1c98ed0402ULL, 0x5c232c54046d3588ULL },
            { L_,  512, 0xcbf8280c620bbb0eULL, 0xecec515b919873fdULL },
            { L_,  513, 0x66e0ae93398dae1aULL, 0x26b0829ed7473cfcULL },
            { L_,  514, 0x6414ae2a6f52d527ULL, 0x433ecef531edce02ULL },
            { L_,  515, 0x9632f9831005ab02ULL, 0x2f3df0b76a8c5bf4ULL },
            { L_,  516, 0xb4458eb5011f848aULL, 0x95b7d33e5b052ac6ULL },
            { L_,  517, 0xe6fb178e6b9ac352ULL, 0x14d6c0fa03a97ad1ULL },
            { L_,  518, 0x0c87288510402bf0ULL, 0x77ece85fcec5d1afULL },
            { L_,  519, 0xa05cabfb98f7be70ULL, 0xdcf558dfad17a348ULL },
            { L_,  520, 0xbdcc5b5a5322b3e6ULL, 0xe9f65f8dfb6aaf19ULL },
            { L_,  521, 0x8eb688449599ca21ULL, 0x56e4424b1afc9503ULL },
            { L_,  522, 0xb62fee9d9e2cec3eULL, 0xbf16d0128e5539faULL },
            { L_,  523, 0xa833eb235cdaf154ULL, 0x2552354b9612a37bULL },
            { L_,  524, 0x1245483c76ac5c07ULL, 0x145de288880bb436ULL },
            { L_,  525, 0x23979780dc993514ULL, 0x5ddc481413f278f6ULL },
            { L_,  526, 0x809552d974913971ULL, 0x35d2be25d67b62d2ULL },
            { L_,  527, 0xbb39f2d012b36c6dULL, 0xf4c3021d601e2024ULL },
            { L_,  528, 0x77dc4fee239d033bULL, 0x45924b3612446593ULL },
            { L_,  529, 0x9238aab9c1b50972ULL, 0x931918bf8702d9e1ULL },
            { L_,  530, 0x32132ff335c53954ULL, 0x58900b39080ac1daULL },
            { L_,  531, 0x924031865b868d12ULL, 0xedb9460c3a18b7f2ULL },
            { L_,  532, 0x0a9c58a1d154d2faULL, 0x81801ecff0aa96b1ULL },
            { L_,  533, 0xe836015d9fdac730ULL, 0x37136da6873d0b14ULL },
            { L_,  534, 0x09e4129921bc8b3aULL, 0x9ddbee6852ab5ed6ULL },
            { L_,  535, 0x13760e96bb794fa7ULL, 0xf4fa1ed7e5da16adULL },
            { L_,  536, 0x13d6edc7ce908b92ULL, 0x9347715546e49df7ULL },
            { L_,  537, 0xc41a05e04a2ba892ULL, 0xf14301f3322d2fd0ULL },
            { L_,  538, 0x85adcb0bab0fea5fULL, 0x54a4b972fc4cc1e3ULL },
            { L_,  539, 0x6c9d11a96ad3047eULL, 0xa503167c9e1b51b5ULL },
            { L_,  540, 0xd43a722a6c6ddbd8ULL, 0x1a21b1908274a303ULL },
            { L_,  541, 0x416f27d5bfcabff2ULL, 0xc50247d4df22cea1ULL },
            { L_,  542, 0xa024e3ca3fa72876ULL, 0x62d52c9da1b095ddULL },
            { L_,  543, 0x6747be8c288fb34aULL, 0x2e65a913974eea90ULL },
            { L_,  544, 0xdca9dac10a9fcd06ULL, 0xf584aa16379b4c00ULL },
            { L_,  545, 0x216bd3af5542a46eULL, 0xea6a9b7d0ac2d256ULL },
            { L_,  546, 0x8a19b4b719badf19ULL, 0x819a79e9df356315ULL },
            { L_,  547, 0xe81956338deef2f3ULL, 0xebc3517b9e4c642eULL },
            { L_,  548, 0x3906a166435134f1ULL, 0xaacbdd4dd340c6c1ULL },
            { L_,  549, 0x467cb3c5a842f910ULL, 0x8c0579184d30f425ULL },
            { L_,  550, 0xc9856ff98c9fc002ULL, 0xc0b8fce8fbdafdcfULL },
            { L_,  551, 0x80434948ce6af981ULL, 0x01ecd8fc6a344ea7ULL },
            { L_,  552, 0x4e02783f80a758c0ULL, 0xecea5fc38042a789ULL },
            { L_,  553, 0xd96d9c3929d08178ULL, 0x1e8d39750f1059e8ULL },
            { L_,  554, 0x356ee3bd210d66afULL, 0x46df703b184f10f1ULL },
            { L_,  555, 0x58a0c229d92bfbb7ULL, 0x0b876d20cf494bddULL },
            { L_,  556, 0xc53e5f1727059589ULL, 0x1a646f5f37aa006cULL },
            { L_,  557, 0x4b2b9b2ae4256e94ULL, 0x460e5d9f503069a4ULL },
            { L_,  558, 0x51ac21e440f8cec1ULL, 0x524b91f7fed6848bULL },
            { L_,  559, 0x2edf882a74d4e46dULL, 0xc39db34a4676fd25ULL },
            { L_,  560, 0x5c0f80484c3e6d52ULL, 0x8848def8b0c2743dULL },
            { L_,  561, 0x73662d647d7fe762ULL, 0x6c0e508b36b9733bULL },
            { L_,  562, 0x65d6bad85758f9b5ULL, 0x71744798cc834f3fULL },
            { L_,  563, 0xb5973cdde32ff49eULL, 0x08a45feb25586c7eULL },
            { L_,  564, 0x431068048034121dULL, 0xeedb191d4dca6361ULL },
            { L_,  565, 0x4a329c9684e7021cULL, 0xaea663c232f0fedbULL },
            { L_,  566, 0x6d999fb71c5c9486ULL, 0x9bf29ddb48e3b8acULL },
            { L_,  567, 0x4e409c3503e17196ULL, 0x1ee8c83152cd9bb9ULL },
            { L_,  568, 0xbf168355a0761567ULL, 0xeb78c46f6be3e0edULL },
            { L_,  569, 0x48c7eaaf4b87c25dULL, 0xc64a1f1b75a52ca3ULL },
            { L_,  570, 0x90b5db8baa80256fULL, 0xdb3c0839c9834058ULL },
            { L_,  571, 0xdb2f7ecca04f1cb7ULL, 0xa3d7b7281bf410aaULL },
            { L_,  572, 0xd43f02a5605b3978ULL, 0x0e4fde2f1b8cd05fULL },
            { L_,  573, 0x09255f4c20949733ULL, 0xb6d6758cb575d9c0ULL },
            { L_,  574, 0xc45fee8d85e8efaaULL, 0x6b0c77f66f0c4344ULL },
            { L_,  575, 0x57bf0d6b4582d294ULL, 0xe2e892e2d4509886ULL },
            { L_,  576, 0x91ba9fd42e41336eULL, 0x79e1ce1a393e1f5dULL },
            { L_,  577, 0xf18bf258b63aca36ULL, 0x9ba8ebda07b97ec3ULL },
            { L_,  578, 0x7fa89141ad611e0eULL, 0x7c09e46e55d7966fULL },
            { L_,  579, 0xa9fa4a86824764c1ULL, 0x69b293f3b52a6458ULL },
            { L_,  580, 0x44d4b19a6a23fc42ULL, 0x50b06eeb3100605fULL },
            { L_,  581, 0xce3d3e8921750c91ULL, 0x60adc1743441f377ULL },
            { L_,  582, 0x6f8914fe0fe48218ULL, 0x32369c4aa56d4b5cULL },
            { L_,  583, 0xef736cf52f4594f8ULL, 0x473a79e06ad7c400ULL },
            { L_,  584, 0x7ed3dd4d77289bd8ULL, 0x02bba2ec471d1355ULL },
            { L_,  585, 0x632f8662c6baa511ULL, 0xbb989ec38ea39fb6ULL },
            { L_,  586, 0x9cf0d019915069d0ULL, 0xc49ade92700b5099ULL },
            { L_,  587, 0x70feaaa2b13a428bULL, 0x3f5e5f6f684c2fecULL },
            { L_,  588, 0x53fed8d7a6096a99ULL, 0x6adb34f5786e1f9dULL },
            { L_,  589, 0x392b4c5012dd3b86ULL, 0x47bc13d92d5c7590ULL },
            { L_,  590, 0x36826d72a60e6f36ULL, 0x900e8233b84e5b79ULL },
            { L_,  591, 0x9c9656cfaea88061ULL, 0x4710987040591de0ULL },
            { L_,  592, 0x7981563cce3d399eULL, 0x8683a32a1a2fb5d1ULL },
            { L_,  593, 0xd377a59d9530605cULL, 0xbf44e5114906eeccULL },
            { L_,  594, 0xd9720da192f8787aULL, 0x2f9fcfee93d9448fULL },
            { L_,  595, 0x048f61c018354bf7ULL, 0xb940d82ad2bc2226ULL },
            { L_,  596, 0x00b6c9f985f4e914ULL, 0x772924514ea95730ULL },
            { L_,  597, 0x5fb61ca0a25f4b3aULL, 0x59e57d5b9bc59868ULL },
            { L_,  598, 0xd627920f3f2bb688ULL, 0xb63319e98b51f938ULL },
            { L_,  599, 0x2931fd987d56fbfeULL, 0xd54d7cfc8d012028ULL },
            { L_,  600, 0x9215a66e488c7a15ULL, 0xd9facb2a4b440264ULL },
            { L_,  601, 0x2cb0269fd2a0b44cULL, 0xec8768a94120ef2dULL },
            { L_,  602, 0x6f0df2530f903699ULL, 0x5e119aac88e56ecaULL },
            { L_,  603, 0xa7bd3d290d2f1d88ULL, 0xc419aed87e52ce89ULL },
            { L_,  604, 0x4f16b08a3e38a943ULL, 0xa5d28667c2854c0dULL },
            { L_,  605, 0x91996ef701b05b2eULL, 0x89d7061645c2f8e2ULL },
            { L_,  606, 0xffda365dba4a91b6ULL, 0x6259bab1a11882c2ULL },
            { L_,  607, 0x2faf149ff6f40bd6ULL, 0xb7fae9bf16868946ULL },
            { L_,  608, 0x24a30d2b8301510eULL, 0xc0b3f4371cb79436ULL },
            { L_,  609, 0x18505b65946e71f7ULL, 0x08100b287ffa43e4ULL },
            { L_,  610, 0xb27db434b21dd11eULL, 0xcd77df1384273f66ULL },
            { L_,  611, 0x5b93547b564295ecULL, 0x7f5b9b0c4468a9bfULL },
            { L_,  612, 0xc9a2d4a14feef561ULL, 0x0b99a8e531677988ULL },
            { L_,  613, 0x77cb17e4b394a039ULL, 0x8fac36562dc56b5eULL },
            { L_,  614, 0x342964a70a4e6f44ULL, 0xefa2ac5c3c19f6d8ULL },
            { L_,  615, 0x67ee7be53c933e11ULL, 0x91e08968082e0a18ULL },
            { L_,  616, 0x178476040beaf1edULL, 0x2afabab7aabb8d87ULL },
            { L_,  617, 0x20791533f3dbc88fULL, 0x08accf1e61f9536cULL },
            { L_,  618, 0x83c90cc01ba4738aULL, 0x2cc6d20e65f15077ULL },
            { L_,  619, 0xfd6c939cc848e36fULL, 0x6fb7357e1bcab5d4ULL },
            { L_,  620, 0x755b593289f5a7cdULL, 0x94c2636f41c57b7dULL },
            { L_,  621, 0xb89520b0f27d90c5ULL, 0x41213364eed4b250ULL },
            { L_,  622, 0xc4d4af46580b9e83ULL, 0x359f0503ca1b7979ULL },
            { L_,  623, 0x1196be077b925ebeULL, 0xf774cf108aa3a3e4ULL },
            { L_,  624, 0x42e82aeae0cb636aULL, 0x7d9678204c477d33ULL },
            { L_,  625, 0xab43a74394035401ULL, 0x5cd794748205f728ULL },
            { L_,  626, 0x65d55e594093b2e6ULL, 0xb80fa908939fae5fULL },
            { L_,  627, 0x65591260d85890f6ULL, 0x485db697981595adULL },
            { L_,  628, 0xe75f2fb57718d999ULL, 0xa483d88ab929b5e7ULL },
            { L_,  629, 0x5b5c391b74a79517ULL, 0xa692e2a35cf94a2fULL },
            { L_,  630, 0x7eb17b133baf98fbULL, 0x146f66aa437be052ULL },
            { L_,  631, 0x1f384ff116b56465ULL, 0xd9c72c25c2cf0271ULL },
            { L_,  632, 0x2c9418bf76d1b42cULL, 0xf6a9d86ad77c896cULL },
            { L_,  633, 0x1b6ceceba6f2f3dfULL, 0x803d1b2f09f7cdf0ULL },
            { L_,  634, 0x14bb09baae4d5e25ULL, 0x7d8c4e3a34a4c042ULL },
            { L_,  635, 0xb09b6101c6dabd1aULL, 0x9a0a72dd2cbd2172ULL },
            { L_,  636, 0x319c2cb9dd441582ULL, 0x177c87cf48c4600bULL },
            { L_,  637, 0x0c97154cae3af517ULL, 0xeed3fac3a32f4d6fULL },
            { L_,  638, 0x70c7470ef9280e64ULL, 0x3275b51e7f88a043ULL },
            { L_,  639, 0x89f488ffba03d156ULL, 0x6448e82621ff7ec4ULL },
            { L_,  640, 0xb4dbf1431afe9a59ULL, 0x488d335162a75940ULL },
            { L_,  641, 0x90530d3ffc2be671ULL, 0x54afe66eaa8bd890ULL },
            { L_,  642, 0xe9a4843219eda23fULL, 0x07136c136faa6adcULL },
            { L_,  643, 0xeb7facf5d12f8a01ULL, 0x86f0fe550b7d89f1ULL },
            { L_,  644, 0xf1233971bf05e3f7ULL, 0x59ba05eba034cd92ULL },
            { L_,  645, 0x496a85f00bc72effULL, 0x78501d8657fa2bf9ULL },
            { L_,  646, 0xf3308cf8082d8d3bULL, 0x405dd93a484bed41ULL },
            { L_,  647, 0x55183c9bd9ac5801ULL, 0xff89046de5704c70ULL },
            { L_,  648, 0x2aea7f6d50c955a3ULL, 0x64c02874e6f547d7ULL },
            { L_,  649, 0x759716e00fc3d964ULL, 0x01317cfa4016cdcbULL },
            { L_,  650, 0x2e5de869cc06c0fdULL, 0x37192e548b264745ULL },
            { L_,  651, 0x870d9259e21eefd9ULL, 0xc24819d44d8a537bULL },
            { L_,  652, 0x2af4e8a601af35c3ULL, 0x553f62535d1bf47bULL },
            { L_,  653, 0xa1031991f8231702ULL, 0x304320c92db01b04ULL },
            { L_,  654, 0x0f9d7fe6ad518816ULL, 0x34e8a2b3e351dc28ULL },
            { L_,  655, 0xc47d7620e088f919ULL, 0x2a846c125287b8ffULL },
            { L_,  656, 0x660f5c68984ca749ULL, 0x536ef0790f45fd35ULL },
            { L_,  657, 0x0897c18d9e697010ULL, 0x9d653624c90e81ddULL },
            { L_,  658, 0xd198a2670761af53ULL, 0x53214550b99944a1ULL },
            { L_,  659, 0xdb7c41b7ee428a5bULL, 0xfabf05dfc7935490ULL },
            { L_,  660, 0xa7534fb4ed4fdd47ULL, 0xa179c24618a35374ULL },
            { L_,  661, 0x8186eb0fbdea397dULL, 0xfb06118fa3d9a998ULL },
            { L_,  662, 0x4b135d4d5b2a70adULL, 0x83b058dabb549474ULL },
            { L_,  663, 0x05f2308de0e04bc9ULL, 0x648e7687d8c03780ULL },
            { L_,  664, 0x1bb389aaaad38a08ULL, 0x7f44cfc2bc5498f5ULL },
            { L_,  665, 0x8c323ac8298b99b5ULL, 0xd728085e1abcb293ULL },
            { L_,  666, 0x8e5cf52cabce80e8ULL, 0x11d90b58d29893a3ULL },
            { L_,  667, 0x6294ad6385452090ULL, 0x93db7f288fbab615ULL },
            { L_,  668, 0xf5831dc8e1b4fe30ULL, 0xee8d24524fb370abULL },
            { L_,  669, 0x1e37480accaf2569ULL, 0x41873fe97427bda9ULL },
            { L_,  670, 0x44b15911b99c847bULL, 0xb8b5b85e062b218aULL },
            { L_,  671, 0xc16924962c913082ULL, 0x4ebc939e82f2b99fULL },
            { L_,  672, 0xd65643ae4c452288ULL, 0xa3bb3f2ea2867317ULL },
            { L_,  673, 0x6f2c71faf9a84922ULL, 0xbf89034dd18f3ad3ULL },
            { L_,  674, 0xdee2809e81575b87ULL, 0x8b6e713a864cd6bbULL },
            { L_,  675, 0x0dc388b9cf4dd757ULL, 0xf4fca120e085a71aULL },
            { L_,  676, 0xc2e7a163653ba461ULL, 0xacdede508d617c87ULL },
            { L_,  677, 0x414df7802b91dc15ULL, 0x3be5a6788fc573c4ULL },
            { L_,  678, 0xbbd5586c95b05622ULL, 0x6cb86028743ac26eULL },
            { L_,  679, 0xa103bb65573b0519ULL, 0x26a9d5b8def3929dULL },
            { L_,  680, 0x5c5c8344b455b84fULL, 0xf2db11edddb239c7ULL },
            { L_,  681, 0x0e9da6209e33bcddULL, 0xae23db9ba5358984ULL },
            { L_,  682, 0x450685b9c1e3b7c9ULL, 0x0eba6e80728d71d2ULL },
            { L_,  683, 0x4563c2c6f56da699ULL, 0x191147627efc610eULL },
            { L_,  684, 0xcc21bacfa14457caULL, 0x954eda2989e13db5ULL },
            { L_,  685, 0xdcf35878cdaa364dULL, 0xcf35e4fb40ba8436ULL },
            { L_,  686, 0xa761e11c5ab941b8ULL, 0xbb88bc37f6dbb590ULL },
            { L_,  687, 0x4b6e3c839372be68ULL, 0x558ccf3deca64237ULL },
            { L_,  688, 0x9c1af64fc3933d32ULL, 0xac4427c1fbba8fd2ULL },
            { L_,  689, 0x0672c40992db9315ULL, 0xcd7c0a0395e52a3eULL },
            { L_,  690, 0xc2f30b5ad622b8c4ULL, 0x1e1a2c582610cf75ULL },
            { L_,  691, 0x4a04186e2816ab8eULL, 0x4f29cda4b5353c1dULL },
            { L_,  692, 0x93037d77ebea4895ULL, 0x53fc0ab1e6bba045ULL },
            { L_,  693, 0xdfa446cc4ed97746ULL, 0x5e148227c0a03056ULL },
            { L_,  694, 0x091126ce6b9dca7cULL, 0xef9a81bb544b01c4ULL },
            { L_,  695, 0xd90e53f6c7d1f12cULL, 0xb16911520f6a00cbULL },
            { L_,  696, 0x64d29d4dc510133dULL, 0x1f5d1f607cd6587dULL },
            { L_,  697, 0x4313123d83d52262ULL, 0x70fdd252f9724dccULL },
            { L_,  698, 0xf02781f175b57171ULL, 0x913cf719c1c59643ULL },
            { L_,  699, 0x1a9b050b709c58bfULL, 0x5ba106b9419a6ed8ULL },
            { L_,  700, 0x3f6b52b53ffee35eULL, 0x6779bfbba414f24dULL },
            { L_,  701, 0xde4eb6dfa6ea9a55ULL, 0xbe4285fd966ecc20ULL },
            { L_,  702, 0xb0f2bb47c4267d92ULL, 0xcbba89101fa3669cULL },
            { L_,  703, 0xcbc40a110113a92bULL, 0x07e87c5c747b27a6ULL },
            { L_,  704, 0xc542be344170a2d8ULL, 0x40245629ad3375ebULL },
            { L_,  705, 0x2f23870617bb7a5bULL, 0xa7601c89bd525d86ULL },
            { L_,  706, 0xa0acac3d92451af5ULL, 0x8c9d335397c803aeULL },
            { L_,  707, 0xb8a4498b6c81a810ULL, 0xbf8a921753d22bb2ULL },
            { L_,  708, 0x21183f90433a31ceULL, 0xdb9ddfdec75f47f9ULL },
            { L_,  709, 0xa454410f3933f199ULL, 0x9d7a059ebfed82ecULL },
            { L_,  710, 0xec814d932d0a5e8eULL, 0x8f3519a7ec21297bULL },
            { L_,  711, 0xf6227286e2c0e1e6ULL, 0xdb2c1d530f3e304aULL },
            { L_,  712, 0x8c1a325a544b3484ULL, 0x9f0ab30fb1d96a36ULL },
            { L_,  713, 0x09331d3bf84c83afULL, 0xd78b2ecd60483fd2ULL },
            { L_,  714, 0x339a47db744323eeULL, 0x76fd62ef23f3c301ULL },
            { L_,  715, 0xcde15305e44f3030ULL, 0x55fc57143cc5508cULL },
            { L_,  716, 0x086167c2e19740e9ULL, 0x9da0d7cbb1a421fbULL },
            { L_,  717, 0x742bae2059e37200ULL, 0x7fe44bd2ac2236cbULL },
            { L_,  718, 0x0ed2d357a2db2956ULL, 0x31772ff0fca46396ULL },
            { L_,  719, 0x8e807f279ce59117ULL, 0xad2234f59ecac88aULL },
            { L_,  720, 0x3b41cfe3e4251e77ULL, 0xd8ab3aa7ec8b4812ULL },
            { L_,  721, 0x4af089dd6afc3eb6ULL, 0x1dc09e966494fc8dULL },
            { L_,  722, 0x066b0101ac1bc859ULL, 0x97094ae09c0e8631ULL },
            { L_,  723, 0x38f709b4d0d98ea2ULL, 0xabd4aba50b832e36ULL },
            { L_,  724, 0x47f74d10fc524b20ULL, 0x238deb84faf95917ULL },
            { L_,  725, 0xd8943d2e1eaaccf8ULL, 0x173ef8a4463634d6ULL },
            { L_,  726, 0xe9379509f5db6cb4ULL, 0xfcd0605439498417ULL },
            { L_,  727, 0xbbfe7823d1aa881dULL, 0x22c53ed5ffeb2ff3ULL },
            { L_,  728, 0x221dcd9806dcf861ULL, 0x64b51ba2d70979aeULL },
            { L_,  729, 0x09c3da95ecb59aecULL, 0x1e3ed755c3075bd8ULL },
            { L_,  730, 0x8e9fa57c5035001eULL, 0x1d542af62c93ec77ULL },
            { L_,  731, 0x273e6e52e473764dULL, 0xfabf50f2768d4708ULL },
            { L_,  732, 0x1c9c95f1d368948fULL, 0x4a362c7877406269ULL },
            { L_,  733, 0x431b66126f2ae7f4ULL, 0xd6eea061109afb7bULL },
            { L_,  734, 0x441cc7e4ed542218ULL, 0x2511e09f07ec1b48ULL },
            { L_,  735, 0x0bd16fcd398f14b1ULL, 0x6ccfb7b1a066068aULL },
            { L_,  736, 0xba34071f3a71c9adULL, 0xdb94f25fd2545567ULL },
            { L_,  737, 0x03b93247796a6e47ULL, 0x720521954c7f16ffULL },
            { L_,  738, 0xfe111d9a7d55e4f3ULL, 0x757da5394dbc6b74ULL },
            { L_,  739, 0xfec667cbcd019d67ULL, 0x77e5d72e8e30038eULL },
            { L_,  740, 0x574cad1cc4750468ULL, 0x77fe808b5d07f7c0ULL },
            { L_,  741, 0xa6903cf3d7e9d97cULL, 0x1a7dfa6013278adcULL },
            { L_,  742, 0x8589f78318f9fb89ULL, 0xcb32de9f8dcf9013ULL },
            { L_,  743, 0x4ae6eea9786a6b5dULL, 0x1013de320c3a678fULL },
            { L_,  744, 0xc617cd7ec3a31c41ULL, 0xfec5e2652c516c98ULL },
            { L_,  745, 0x6f98e588f03875e0ULL, 0x9cea47ffefa06519ULL },
            { L_,  746, 0xa421b7cae01389d0ULL, 0xa9d5fbce283875b4ULL },
            { L_,  747, 0xf88306e99bf92764ULL, 0xb2d66a2c5f5e999bULL },
            { L_,  748, 0xb1b64a97f6f149beULL, 0xa78f29eee0b85ff7ULL },
            { L_,  749, 0xc3ca45eed6981e97ULL, 0x391cf913c2014eebULL },
            { L_,  750, 0x1295635140d581e2ULL, 0xde260d37dd22034cULL },
            { L_,  751, 0x2141c7d427604a84ULL, 0x09cf63f7188712a2ULL },
            { L_,  752, 0x6c40980aa508f930ULL, 0xc51c31da40b191d0ULL },
            { L_,  753, 0x8fc08c5af14cd539ULL, 0xf0c628798f4f1cffULL },
            { L_,  754, 0x55fdd1ac80f222b3ULL, 0x84763946558cf416ULL },
            { L_,  755, 0x60c2ff40ecb3e68dULL, 0x72dfaa32eb80e7fdULL },
            { L_,  756, 0x776e092d02531bbcULL, 0xfb7eec1eb3b4aca2ULL },
            { L_,  757, 0xa84f85898fdf2ce6ULL, 0x249f76ba926f16a3ULL },
            { L_,  758, 0x88931824b9147940ULL, 0xfc65f4c95ca4f312ULL },
            { L_,  759, 0xf313862f542dfe0dULL, 0xf67992fb52a0124bULL },
            { L_,  760, 0xef9664627902099dULL, 0xa1c59954db4ec080ULL },
            { L_,  761, 0xc98e9e4cc61efd86ULL, 0x39fc591a7b512eebULL },
            { L_,  762, 0xfe7510215a4121a1ULL, 0xf4fd1a9174148772ULL },
            { L_,  763, 0xb60b683d6c2510d9ULL, 0x27969d28bc5b7e95ULL },
            { L_,  764, 0x5e65f01ffc10503aULL, 0xea9c8aa1231fa4feULL },
            { L_,  765, 0x0ac02e9a92c6488aULL, 0x141281ebb4dcf16aULL },
            { L_,  766, 0xc808c4a3392f0875ULL, 0xf4a49374cabc59f9ULL },
            { L_,  767, 0x3efc13b210a3578fULL, 0xf727a128f964455aULL },
            { L_,  768, 0x1794e8289c3428b2ULL, 0x4d0d05a2a98fcaedULL },
            { L_,  769, 0x520d9108036036a0ULL, 0xaa70a3c25f661b17ULL },
            { L_,  770, 0xa146b71a00afee95ULL, 0xd08e1b4331b1ff4dULL },
            { L_,  771, 0x087cd67f3f01675bULL, 0xf8be1dd47bd15f5aULL },
            { L_,  772, 0xc034fcce7142f5f1ULL, 0x92c62d22b33fa86dULL },
            { L_,  773, 0xe21bdfd51d238e36ULL, 0xfc8f0a446fb2b654ULL },
            { L_,  774, 0xff3b59cf9920c79dULL, 0x61a1ff3259864816ULL },
            { L_,  775, 0xc3985927a00feec2ULL, 0x6d08c2ff4d79aab3ULL },
            { L_,  776, 0x6740e95cecd845f5ULL, 0x111771d1605963baULL },
            { L_,  777, 0x9b7d41d094ff211aULL, 0x03853b11cb7d5432ULL },
            { L_,  778, 0x72cf354826782192ULL, 0xef04e39d396ad5d4ULL },
            { L_,  779, 0x041a9510b068ce18ULL, 0x575bcbed97cd477bULL },
            { L_,  780, 0x53248dbd1c076f6cULL, 0xb85248983c9c3d89ULL },
            { L_,  781, 0xd8c3c4b514bdf52cULL, 0xda1b9ef3650790d0ULL },
            { L_,  782, 0x53d156992301bd67ULL, 0x3b360404545daf1cULL },
            { L_,  783, 0x9fe31553b1a24a92ULL, 0xfc504702dad4e74fULL },
            { L_,  784, 0x24a6cccc9feaa040ULL, 0xe4c8813c9af9668cULL },
            { L_,  785, 0xa354e170c5c17af6ULL, 0x64d023a1bb92561aULL },
            { L_,  786, 0x6e95be9a394c8b7cULL, 0x4a2660791c7fbf4bULL },
            { L_,  787, 0xbeccb83825ae3e98ULL, 0x3233e5e0508a4dc9ULL },
            { L_,  788, 0x693647590751a750ULL, 0xfb5d3f77ffe19a14ULL },
            { L_,  789, 0xbb512083fbbd1409ULL, 0x8867ab37ffbedefdULL },
            { L_,  790, 0xe8c5c4d4b49f0102ULL, 0xf23ebab3b7ce4824ULL },
            { L_,  791, 0xd35fa3c03a6a380eULL, 0x4311b6fd8082b532ULL },
            { L_,  792, 0xe3eb87056337afa0ULL, 0xe31ce5b8450c41beULL },
            { L_,  793, 0xc63b4bad6ba0eb4fULL, 0x2a9283f9fd50d07dULL },
            { L_,  794, 0x144b861dd045c984ULL, 0xd89215b20488c2c4ULL },
            { L_,  795, 0x14ecd164b67ee596ULL, 0xf8eebf3d473b7733ULL },
            { L_,  796, 0x02712909290565ebULL, 0x8e528c29e9a7d661ULL },
            { L_,  797, 0x9d79eef3c5e15ea9ULL, 0x7a5ce3b1f8a53b01ULL },
            { L_,  798, 0x9e572c23e14c3c88ULL, 0xfdd331efc712a43aULL },
            { L_,  799, 0x6624c569918fc1a3ULL, 0xf633166a2234931aULL },
            { L_,  800, 0x6976bafdcbe3d7c4ULL, 0xab3a0d41c548fb49ULL },
            { L_,  801, 0x46425dd7e49bae6aULL, 0x8efc3d667fbae439ULL },
            { L_,  802, 0x4157bf2412602ddaULL, 0xf9996d3c93e33d84ULL },
            { L_,  803, 0x02c2d2f915c22fbaULL, 0x03b22f61a32b80baULL },
            { L_,  804, 0x16fb1d17e4af30bfULL, 0xbb52b1867d9fab1aULL },
            { L_,  805, 0xed5741297bc97d4dULL, 0x8239f0f088ff6271ULL },
            { L_,  806, 0xf1b6eb280029f6beULL, 0x6441b75644612c17ULL },
            { L_,  807, 0x3a88b8740c65c3f6ULL, 0xf86ca21cd7aa06ebULL },
            { L_,  808, 0x16201c07d79c12afULL, 0x07946676d6f181fdULL },
            { L_,  809, 0xdcf0160f65a3e020ULL, 0x1ada42bf44068effULL },
            { L_,  810, 0x47025995d9a5dca1ULL, 0x43b2e51ae6a0ab34ULL },
            { L_,  811, 0x7e8925162bf69e98ULL, 0x431ee5a9c8015f47ULL },
            { L_,  812, 0x276c659bb227b20cULL, 0xb16b847d9c1b02faULL },
            { L_,  813, 0x375cfad2ff28a69aULL, 0xd2461b649722d730ULL },
            { L_,  814, 0x481c5043f2569e28ULL, 0xaf8338338aa5a0e8ULL },
            { L_,  815, 0xbdda29c3f6354326ULL, 0x0848cc08d22af41bULL },
            { L_,  816, 0x9bb7ba77e56e6602ULL, 0xb68c9f4c9222ec06ULL },
            { L_,  817, 0x4b7d033b332c221dULL, 0x443789a9b8d61620ULL },
            { L_,  818, 0xc4310fe21fbee293ULL, 0x1213a71b34faaeb8ULL },
            { L_,  819, 0xe8628c84b4e23f98ULL, 0x2dc97b12214d4181ULL },
            { L_,  820, 0xe81f073951fa4134ULL, 0xb7fbc7ca59674f13ULL },
            { L_,  821, 0xd369455a3f7dfa7eULL, 0xec7d866b554c4f67ULL },
            { L_,  822, 0xc965c0b702d13e10ULL, 0xf0f44c38909ae7bdULL },
            { L_,  823, 0x6e153bb6295840d9ULL, 0xcc2fe9cff961cf64ULL },
            { L_,  824, 0xa1b36e5a138045a8ULL, 0xde86dcf4c3a1d2fdULL },
            { L_,  825, 0x31fc13d9ea1bd3c6ULL, 0x0c0f60ab102467d7ULL },
            { L_,  826, 0x2649aae40ad11e87ULL, 0xd532c6695ceaf9beULL },
            { L_,  827, 0x83ba3a673b0d6d3dULL, 0xf3aeb2a94d128624ULL },
            { L_,  828, 0xfa3ab53ef329a9c1ULL, 0x6daae4b98e1c9cadULL },
            { L_,  829, 0xdcc49bf540c604fcULL, 0x2e5a85de5fc98b2cULL },
            { L_,  830, 0xdcb4432cae9117d6ULL, 0xcb2c9823643b57d9ULL },
            { L_,  831, 0x532bc346e140c2d9ULL, 0xa754e64c4288cb1cULL },
            { L_,  832, 0x74fb12497a7b6290ULL, 0xa68b9657ab92b190ULL },
            { L_,  833, 0x1ae4375f92e1cc10ULL, 0x9a7e1b8ec9612790ULL },
            { L_,  834, 0x2a2570c50858f777ULL, 0x3076674be5c61410ULL },
            { L_,  835, 0x0ab59983afe7c078ULL, 0x0856c99f0ca0de05ULL },
            { L_,  836, 0xc9e56682e1e1a33fULL, 0xdeb97be4e6d54b63ULL },
            { L_,  837, 0x3bdb8e0a63ab160bULL, 0xff920207521bec94ULL },
            { L_,  838, 0x356f5a9c9a2f93f7ULL, 0x0c4721c31e3cfe9dULL },
            { L_,  839, 0x57e717b43b5c7110ULL, 0xc6d66b3b3919b893ULL },
            { L_,  840, 0x7625df54778582c6ULL, 0x329094f2a345a553ULL },
            { L_,  841, 0x0cef7a0d08148721ULL, 0x2e207473e00dd359ULL },
            { L_,  842, 0x7670ea964303ae2cULL, 0x975d9d001f215158ULL },
            { L_,  843, 0x5d84ee13d10d773eULL, 0xea3506eb74dc1af9ULL },
            { L_,  844, 0x4dd703b7ac9489a4ULL, 0xbf6c4e592c9c46f9ULL },
            { L_,  845, 0x1ba1150ba1483fb0ULL, 0x3e6bb08791ef5ab4ULL },
            { L_,  846, 0x3081f6181492b498ULL, 0xf4da1c7739b36b61ULL },
            { L_,  847, 0xcf97f15828670007ULL, 0x6b0d73ee029482e8ULL },
            { L_,  848, 0x89315461f0e19097ULL, 0xd0cb39a203141ee3ULL },
            { L_,  849, 0xfcac71885997b4a0ULL, 0x141b57cd944306aeULL },
            { L_,  850, 0xcbe8ce48d4956f58ULL, 0x269b13466ee2c2a2ULL },
            { L_,  851, 0x75765ccc07a6ac8cULL, 0x087dd1c5800f1472ULL },
            { L_,  852, 0x22a63f8c557d5f37ULL, 0xbae3535e9ea7277dULL },
            { L_,  853, 0x2a9c748209fa6e13ULL, 0xa6df8be503626d11ULL },
            { L_,  854, 0x48b8d891867d0e0aULL, 0xed315bf1ed6f1d34ULL },
            { L_,  855, 0x10b2b37f432df1e6ULL, 0x09c85efc671de188ULL },
            { L_,  856, 0xf5ba88046fd2f510ULL, 0xc8ab65b0ccf13281ULL },
            { L_,  857, 0x65852af962beab8cULL, 0x474752d9266ab245ULL },
            { L_,  858, 0x54d7f1ea9aa57cd4ULL, 0x9ee9ec5fdcf017f2ULL },
            { L_,  859, 0xdbc4597bbce3ab17ULL, 0x9abededf894fd0d0ULL },
            { L_,  860, 0x5414022765e309caULL, 0xfe28ccf144e5d0d6ULL },
            { L_,  861, 0x7e2b4472de8d8895ULL, 0xfedf42d810aabc0dULL },
            { L_,  862, 0xfcd800bbdfe335b8ULL, 0x46b083d360aa3d11ULL },
            { L_,  863, 0x3140330cd8d98fcfULL, 0xf444c29ba9c011c3ULL },
            { L_,  864, 0xd4d90efe2d5a9893ULL, 0x28e87c130e41d56eULL },
            { L_,  865, 0xdf0d6c3adc4dc1d2ULL, 0xc8efe27089dfb45aULL },
            { L_,  866, 0x9a2d50fc377f3f3aULL, 0xe5c798cdec0fa141ULL },
            { L_,  867, 0xcc89adfaaa1ac786ULL, 0x44ce3a24b07866e3ULL },
            { L_,  868, 0x98093f8be1ea01d7ULL, 0x5e96e7cb0b50038aULL },
            { L_,  869, 0xe32849b6ca6a2d74ULL, 0x71b75668e2a1df26ULL },
            { L_,  870, 0xf0489f7eef63dcffULL, 0xfcba3c84378e47faULL },
            { L_,  871, 0x96a2c0e31d53b933ULL, 0x4022fef8065cd0a1ULL },
            { L_,  872, 0x3f8be6ee40ac1a8fULL, 0xa22c760c476340d9ULL },
            { L_,  873, 0x8882cc64610f2756ULL, 0x98938acc98037203ULL },
            { L_,  874, 0x1f558c59993942baULL, 0x83b83cc388fb1d5dULL },
            { L_,  875, 0xf8c509153217f31aULL, 0x1bd9fe44bae78920ULL },
            { L_,  876, 0xee7f77c2a6b9a0fbULL, 0x47fbdbf1d380547aULL },
            { L_,  877, 0x0ed4dbdd062eff2eULL, 0xbc45943ec8ffec69ULL },
            { L_,  878, 0x01f44d07bf1e72e5ULL, 0xf81007507dd9d13dULL },
            { L_,  879, 0xd999672cfcb32fabULL, 0x765447000aed30ffULL },
            { L_,  880, 0x8aad72c6f29bbd38ULL, 0x9e58c550b0998458ULL },
            { L_,  881, 0x1ea0a72cd12804b3ULL, 0x2d2670fef4f14defULL },
            { L_,  882, 0x93fdcd5a4e072aaeULL, 0x2052839b2d45f58eULL },
            { L_,  883, 0x083b9f58dca2f174ULL, 0xa876e029af11be6dULL },
            { L_,  884, 0xcfd30d043c29ab18ULL, 0x937e8d73f0ed2ec9ULL },
            { L_,  885, 0xa36d0fc407d7862dULL, 0x2845dd7afc1042bcULL },
            { L_,  886, 0xef26ef5c6c9ef96eULL, 0x0058003fd6bfab7aULL },
            { L_,  887, 0xd44f45c071fd053bULL, 0x9b8247c2e70b4d88ULL },
            { L_,  888, 0xeb872cb4a2f57529ULL, 0x08477cee1e383cbcULL },
            { L_,  889, 0xc6079b93025fdf1eULL, 0x2c119586ef24a2ddULL },
            { L_,  890, 0x9fe498f07af87f4aULL, 0x301791d4c91c1b13ULL },
            { L_,  891, 0x7ba3a32e883582a1ULL, 0x368dc4defabbf00fULL },
            { L_,  892, 0xa4e3bbfaac7b9cd7ULL, 0xc38f181097666458ULL },
            { L_,  893, 0x5a5f6f7d70393202ULL, 0x35114bdca7e2a0d2ULL },
            { L_,  894, 0xc571a4e68dfc3ccdULL, 0x804ca33cfcced16dULL },
            { L_,  895, 0x5e749fe950d6ffb0ULL, 0x7b9c8a16ffc33917ULL },
            { L_,  896, 0xfc35df413157160bULL, 0xd371be763b054260ULL },
            { L_,  897, 0x914ff0d4b92f6806ULL, 0x57d244e65bc4aa0fULL },
            { L_,  898, 0x75546729fc73feebULL, 0xf4fe790aa29b44c5ULL },
            { L_,  899, 0x8065ce3f5929f36dULL, 0xe3239ff3c109ce7cULL },
            { L_,  900, 0xbe9462e73a2c3667ULL, 0x073c31fc1786d5cfULL },
            { L_,  901, 0x1ef22a96f6ce191fULL, 0xcd4bebd233fa2ef5ULL },
            { L_,  902, 0xec4a810030196d01ULL, 0x5f0c8ab66788cf3fULL },
            { L_,  903, 0x1c920fa034514c16ULL, 0xc6f57a7bf54322efULL },
            { L_,  904, 0x6a64715808db3197ULL, 0x41f6f67a9816b173ULL },
            { L_,  905, 0x2902e9b96bdfd93fULL, 0xcefb4763bc698a1fULL },
            { L_,  906, 0x8eebd5dd7ac0587eULL, 0x22fd0926f8740ed4ULL },
            { L_,  907, 0xcb55e249fab0b059ULL, 0xbc58ce855aca93fdULL },
            { L_,  908, 0x902bb5106302f746ULL, 0xdfe2ad02cbe0f245ULL },
            { L_,  909, 0x8eb76e4a9c97f638ULL, 0x82b38e761d46813eULL },
            { L_,  910, 0x12a64dd528b1d162ULL, 0x689a6331b10545b1ULL },
            { L_,  911, 0xf58eb5029dd50383ULL, 0x85f8ae89b84ecad5ULL },
            { L_,  912, 0x8e5630186acf554dULL, 0x68483324be4e6d9aULL },
            { L_,  913, 0xa0beece4e9db9d89ULL, 0x6862fa58a8750deeULL },
            { L_,  914, 0xf960a3b4d0049f54ULL, 0x9be30fcaa184669aULL },
            { L_,  915, 0xf14ac9047609b404ULL, 0x25a63b8aa2c3816fULL },
            { L_,  916, 0x96e7d8a9cd9de88cULL, 0x91972a97f55c956cULL },
            { L_,  917, 0x09fa0743461a7cdfULL, 0x91447ab9929734efULL },
            { L_,  918, 0x75dc3297bbe5d252ULL, 0x5ba096bf6bcf7ab9ULL },
            { L_,  919, 0xca7a585ce466efe7ULL, 0x9448c6de29d64930ULL },
            { L_,  920, 0xa35053babdb03493ULL, 0x7893d7424fd16af5ULL },
            { L_,  921, 0xaba8d8639dbb55abULL, 0x7d588a63de1aa6f5ULL },
            { L_,  922, 0xd6543fb83f285b92ULL, 0x595d5b64b4df75a5ULL },
            { L_,  923, 0x9e4cd708e1bcc314ULL, 0x0e58b9302510af99ULL },
            { L_,  924, 0x3121f77be7b45e0dULL, 0x40305c6cb5d9ce9cULL },
            { L_,  925, 0x0516beac6c7f5ddcULL, 0x4c011d427dc8bd44ULL },
            { L_,  926, 0x90eabe1975ebe103ULL, 0xd15780d3cf6f09c2ULL },
            { L_,  927, 0xc732a793e2f6c479ULL, 0x9d3a553691359227ULL },
            { L_,  928, 0x76619df753e90116ULL, 0xb1968284c26d4776ULL },
            { L_,  929, 0xc65ef7febe7aaf76ULL, 0x8e2383d1b6e9b6a3ULL },
            { L_,  930, 0x5746f665736d4783ULL, 0x3ae8d0727a27e800ULL },
            { L_,  931, 0xa51daec54d6bbb9bULL, 0x40c5ad813b1fb459ULL },
            { L_,  932, 0x0a1321caaea868beULL, 0x510d1ead29918df1ULL },
            { L_,  933, 0x64b3f0b4b180cb91ULL, 0xcfe721926fd22de0ULL },
            { L_,  934, 0x8956116ef7a526a4ULL, 0x9f3dc568ae8706e4ULL },
            { L_,  935, 0xd0f51a194cdf3cc2ULL, 0xdf07b849b9545354ULL },
            { L_,  936, 0x00f9971797d93b1cULL, 0x6e7fc52768d0472bULL },
            { L_,  937, 0xa0f6dd45ef8493c1ULL, 0x5a3d7bb22b54c606ULL },
            { L_,  938, 0x859fce2a11bf33afULL, 0xe45e7eedc7e96d13ULL },
            { L_,  939, 0x60f1af5aea2e17f8ULL, 0xf40f8bca2a4ba36dULL },
            { L_,  940, 0x5ecf05250f4d9de0ULL, 0xe1aad14e70ce9683ULL },
            { L_,  941, 0xf47d7b435ab86e96ULL, 0xf6b7efb3b1eb0aa4ULL },
            { L_,  942, 0x9e4f2173a1c3e961ULL, 0x65d50e5f38c62b3fULL },
            { L_,  943, 0x759f98d6852a7353ULL, 0x571fc7b30c30d396ULL },
            { L_,  944, 0x1b631d589736598aULL, 0xf553d690f4451252ULL },
            { L_,  945, 0x2e5dcc276dc1c73dULL, 0x74baff9c0007c71eULL },
            { L_,  946, 0xcf1de90334379843ULL, 0x7252a2d0ef2a4385ULL },
            { L_,  947, 0xb2d70a215f419754ULL, 0xa4ae046915b26bb2ULL },
            { L_,  948, 0xdcc5f0b0f15bb4acULL, 0xfee6a8a396557732ULL },
            { L_,  949, 0x3a6c2fa91804eabbULL, 0xcde5e562047d1255ULL },
            { L_,  950, 0x941c2bb9a7c81fb2ULL, 0xb72d24a00ea08cb4ULL },
            { L_,  951, 0x2ed872130ca57ad0ULL, 0x1fbf43bc299c2603ULL },
            { L_,  952, 0x32c1ca701d8299d1ULL, 0x31371ed3aac2c146ULL },
            { L_,  953, 0xaacf8201ff1c0954ULL, 0xfa7a67709e040e5fULL },
            { L_,  954, 0xce707d9248de4306ULL, 0x143ba792dd48ca20ULL },
            { L_,  955, 0xbb83c91d320ed62cULL, 0xb8b7d65b27d993b7ULL },
            { L_,  956, 0xa025bd22a8e9588aULL, 0x21c2dcfa7764ecbbULL },
            { L_,  957, 0x92a692b3b7fff1ceULL, 0x8d3656d95023178fULL },
            { L_,  958, 0xbc0b2fa77d0b7d99ULL, 0x38f3a27ea0cd2391ULL },
            { L_,  959, 0x73cc6e9d7e729a1bULL, 0xe7a11deb1e0081fbULL },
            { L_,  960, 0xee235b43a58d7813ULL, 0xaa7aa1c20694e209ULL },
            { L_,  961, 0x07fbce4f0f9f539dULL, 0x081b9b4f6c982fddULL },
            { L_,  962, 0xb65a00aa2b66f898ULL, 0xa14dee902684a40fULL },
            { L_,  963, 0x052ea08d513faacaULL, 0x38545543763c8b18ULL },
            { L_,  964, 0xe4da3431c7bc3197ULL, 0xb88a7b9001ba8956ULL },
            { L_,  965, 0x21c0d48e92c9a494ULL, 0x1b5201a759a4f11aULL },
            { L_,  966, 0x787bc96406d6a3bdULL, 0x6e8e7449e22a83fdULL },
            { L_,  967, 0x9fd0cb5b7a5eaa4eULL, 0xb697f7f4c4b2dd4cULL },
            { L_,  968, 0xa9b22b48a3d2c995ULL, 0xb2c41fa31e90f444ULL },
            { L_,  969, 0x61252082194b2b39ULL, 0xdaddac63e6591fdfULL },
            { L_,  970, 0x6fc5511c569a1bfcULL, 0x77f311beecc2652aULL },
            { L_,  971, 0x47cdc86581bf5192ULL, 0x24590b0f870ad373ULL },
            { L_,  972, 0x42db4ca3eea36ff3ULL, 0x1e70184e6750d1eeULL },
            { L_,  973, 0x41ddb31b902ead86ULL, 0x07b670f2a1cb4343ULL },
            { L_,  974, 0x6d86960b39819e88ULL, 0xf243ad1018276df0ULL },
            { L_,  975, 0xb12631f958e6b817ULL, 0xadf4b06af2f82b78ULL },
            { L_,  976, 0x4a06ddde1c740d1eULL, 0xf98fc1cd996cbd3eULL },
            { L_,  977, 0x5643e7cae57dba77ULL, 0x9e6c091ee8549addULL },
            { L_,  978, 0xf8d7adca982ea197ULL, 0x86cd212370f9bcf6ULL },
            { L_,  979, 0xd4a25b795b386941ULL, 0xf878f8d840ff1ed9ULL },
            { L_,  980, 0x146b03777dae98b4ULL, 0x4b3eada8191800b9ULL },
            { L_,  981, 0xd1f965e0a788a812ULL, 0xb40e495944441a00ULL },
            { L_,  982, 0x07be53b85634309dULL, 0x843a6dfe2c1e18fdULL },
            { L_,  983, 0x696499e190ea9c59ULL, 0x7479c1c1e7420ae0ULL },
            { L_,  984, 0x7fe47e676753b933ULL, 0x2287675a358dcedfULL },
            { L_,  985, 0xbbc8e75dcd12ca82ULL, 0x5ab6b4caa5effb05ULL },
            { L_,  986, 0x8d1d6be39498ced7ULL, 0x6b463607e3ba8f91ULL },
            { L_,  987, 0x0f4a09cb85471e9aULL, 0xc9717b1bfea0b54bULL },
            { L_,  988, 0xa312ba7cc1b58be0ULL, 0xd1826a619e513412ULL },
            { L_,  989, 0xfb4f35ea9589646bULL, 0xb2c16ec64a59187dULL },
            { L_,  990, 0x24c1d8fa0521146aULL, 0x1215d293074efa77ULL },
            { L_,  991, 0x01fb9262637a32f0ULL, 0xfaf91aa4c49abadeULL },
            { L_,  992, 0x786ba9a6e5892d2cULL, 0x911ed0228dbc36f1ULL },
            { L_,  993, 0x8a8e9f2310348aabULL, 0x8d24c031548e47c6ULL },
            { L_,  994, 0xb35a6b75b3fd54feULL, 0xeae56137d1b57fd3ULL },
            { L_,  995, 0x494d81d5f07b7885ULL, 0xee1a0aa8c5459c73ULL },
            { L_,  996, 0x56af52e3fac1afabULL, 0x6bb366f52d87ddbcULL },
            { L_,  997, 0xcb188983c0b46acdULL, 0x86c5c633e7d67c02ULL },
            { L_,  998, 0x2005f1ed83765a24ULL, 0xdfd085082473be7aULL },
            { L_,  999, 0xb87c5cb3a357a65cULL, 0xdea85505e86e8574ULL },
            { L_, 1000, 0x5e98b9f6e238942bULL, 0xdd89836a01899e86ULL },
            { L_, 1001, 0x944affa384ae1ef1ULL, 0xf6373f85ac8129a2ULL },
            { L_, 1002, 0xad0b700a5d8efc44ULL, 0xb6474a74c29255e3ULL },
            { L_, 1003, 0x930ca2546a456054ULL, 0xe1da3ed968ceace8ULL },
            { L_, 1004, 0x9f90be5de02d6d34ULL, 0xd828092b80e12b6fULL },
            { L_, 1005, 0x379912c851e3a9e0ULL, 0x06db62a3da0211e1ULL },
            { L_, 1006, 0x778e6e4ef8dfac84ULL, 0xe284eb0c5586200eULL },
            { L_, 1007, 0xfe8f0192f1ffa111ULL, 0x29949b441b05b994ULL },
            { L_, 1008, 0xf96b776c530ee8a3ULL, 0x65f7c639d8e5d450ULL },
            { L_, 1009, 0x1f945b7cf320bdf0ULL, 0xbf31f9a07304e6abULL },
            { L_, 1010, 0xb5b3bbe2acfb756fULL, 0xbbb854493171fbd2ULL },
            { L_, 1011, 0xf0469c2cde547bddULL, 0xb8544840030e7d6bULL },
            { L_, 1012, 0x0745b8bb9094fde8ULL, 0xa807c4c55482d4e2ULL },
            { L_, 1013, 0x36aaa80cdc9116bbULL, 0x51f11bf2d1cfc121ULL },
            { L_, 1014, 0x4d26d807ed1aadccULL, 0xad633d03f267a4c6ULL },
            { L_, 1015, 0x1619d9d3bf170ea8ULL, 0xe8a41b0cc8dd3146ULL },
            { L_, 1016, 0xbd8e3ce8c95f0520ULL, 0x80d89fdb98acee21ULL },
            { L_, 1017, 0xa8a5ee5f8b87ad7fULL, 0xacf900d43601b8b6ULL },
            { L_, 1018, 0x69829db828789469ULL, 0xfb705fe778a49b7cULL },
            { L_, 1019, 0xd4ca3f5d391ae6c1ULL, 0xf80c41e064ce5651ULL },
            { L_, 1020, 0x1aaf4b02dbd79ecaULL, 0x4c6126bc7e3feb96ULL },
            { L_, 1021, 0x30a5af50c6d0abd4ULL, 0xdbe0b13bbb35b5abULL },
            { L_, 1022, 0xbdc1cc740b0d397dULL, 0x83b4cb58fd6c3c14ULL },
            { L_, 1023, 0xd7846e7d8f658761ULL, 0x4474d92fbc45ca59ULL },
#endif
        };
        enum { k_DATA_LEN = sizeof DATA / sizeof *DATA };

#undef  U_PRINT_TABLE
#define U_PRINT_TABLE 0

#if U_PRINT_TABLE
        enum { k_BUFFER_LEN = 1024 };
        char buffer[k_BUFFER_LEN];
        for (unsigned ti = 0; ti < k_BUFFER_LEN; ++ti) {
            const unsigned LEN           = ti;
#else
        char buffer[k_DATA_LEN];
        for (unsigned ti = 0; ti < k_DATA_LEN; ++ti) {
            const Data&    data          = DATA[ti];
            const int      LINE          = data.d_line;
            const unsigned LEN           = data.d_len;
            const Uint64   HASH          = data.d_hash;
            const Uint64   SEEDLESS_HASH = data.d_seedlessHash;
#endif
            ASSERT(LEN == ti);
            ASSERT(LEN <= sizeof(buffer));

            u::RandGen rand;
            rand.num(LEN);
            rand.randMemory(buffer, LEN);
            Uint64 seed[2];
            rand.randMemory(&seed, sizeof(seed));
            BSLMF_ASSERT(Obj::k_SEED_LENGTH == sizeof(seed));

            if (veryVerbose) {
                P_(LEN);    P_(buffer[0]);    P_(buffer[LEN - 1]);    P(seed);
            }

            Obj hash(reinterpret_cast<const char *>(&seed));
            hash(buffer, LEN);
            const Uint64 hashVal = hash.computeHash();

            Obj seedlessHash;
            seedlessHash(buffer, LEN);
            const Uint64 seedlessHashVal = seedlessHash.computeHash();
#if U_PRINT_TABLE
            printf("%12s{ L_, %4u, 0x%016llxULL, 0x%016llxULL },\n",
                                            "", LEN, hashVal, seedlessHashVal);
#else
            ASSERTV(LINE, LEN, HASH, hashVal, HASH == hashVal);
            ASSERTV(LINE, LEN, SEEDLESS_HASH, seedlessHashVal,
                                             SEEDLESS_HASH == seedlessHashVal);
#endif
        }

#if !U_PRINT_TABLE
        for (int ti = 0; ti < 10 * k_DATA_LEN; ++ti) {
            const Data&  data          = DATA[ti % k_DATA_LEN];
            const int    LINE          = data.d_line;
            const size_t LEN           = data.d_len;
            const Uint64 HASH          = data.d_hash;
            const Uint64 SEEDLESS_HASH = data.d_seedlessHash;

            char buffer[k_DATA_LEN];
            ASSERT(LEN <= sizeof(buffer));

            u::RandGen rand;
            rand.num(LEN);
            rand.randMemory(buffer, LEN);
            Uint64 seed[2];
            rand.randMemory(&seed, sizeof(seed));
            BSLMF_ASSERT(Obj::k_SEED_LENGTH == sizeof(seed));

            if (veryVerbose) {
                P_(LEN);    P_(buffer[0]);    P_(buffer[LEN - 1]);    P(seed);
            }

            Obj hash(reinterpret_cast<const char *>(&seed));
            Obj seedlessHash;

            u::RandGen rand2;
            rand2.num(ti);
            for (size_t offset = 0, subLen; offset < LEN; offset += subLen) {
                subLen = rand2.num() % (LEN + 1 - offset);
                ASSERT(offset + subLen <= LEN);

                hash(        buffer + offset, subLen);
                seedlessHash(buffer + offset, subLen);
            }
            if (0 == LEN && rand2.num() % 2) {
                hash(        buffer, 0);
                seedlessHash(buffer, 0);
            }
            const Uint64 hashVal         = hash.computeHash();
            const Uint64 seedlessHashVal = seedlessHash.computeHash();

            ASSERTV(LINE, HASH, hashVal, HASH == hashVal);
            ASSERTV(LINE, SEEDLESS_HASH, seedlessHashVal,
                                             SEEDLESS_HASH == seedlessHashVal);
        }
#endif
      } break;
      case 3: {
        // --------------------------------------------------------------------
        // TESTING TESTING `operator()` AND `computeHash()`
        //   Verify the class provides an overload for the function call
        //   operator that can be called with some bytes and a length.  Verify
        //   that calling `operator()` will permute the algorithm's internal
        //   state as specified by SpookyHash.  Verify that `computeHash()`
        //   returns the final value specified by the canonical spooky hash
        //   implementation.
        //
        // Concerns:
        // 1. The function call operator is callable.
        //
        // 2. Given the same bytes, the function call operator will permute the
        //    internal state of the algorithm in the same way, regardless of
        //    whether the bytes are passed in all at once or in pieces.
        //
        // 3. Byte sequences passed in to `operator()` with a length of 0 will
        //    not contribute to the final hash
        //
        // 4. `computeHash()` and returns the appropriate value
        //    according to the SpookyHash specification.
        //
        // 5. `operator()` does a BSLS_ASSERT for null pointers and non-zero
        //    length, and not for null pointers and zero length.
        //
        // Plan:
        // 1. Insert various lengths of c-strings into the algorithm both all
        //    at once and char by char using `operator()`.  Assert that the
        //    algorithm produces the same result in both cases. (C-1,2)
        //
        // 2. Hash c-strings all at once and with multiple calls to
        //    `operator()` with length 0.  Assert that both methods of hashing
        //    c-strings produce the same values.(C-3)
        //
        // 3. Check the output of `computeHash()` against the expected results
        //    from a known good version of the algorithm. (C-4)
        //
        // 4. Call `operator()` with a null pointer. (C-5)
        //
        // Testing:
        //   void operator()(void const* key, size_t len);
        //   result_type computeHash();
        // --------------------------------------------------------------------

        if (verbose) printf(
                       "\nTESTING TESTING `operator()` AND `computeHash()`"
                       "\n================================================\n");

        static const struct {
            int                  d_line;
            const char           d_value [21];
            bsls::Types::Uint64  d_expectedHash;
        } DATA[] = {
#ifdef BSLS_PLATFORM_IS_LITTLE_ENDIAN
        // LINE DATA               HASH
         {  L_,                     "1",  7002407594712107506ULL,},
         {  L_,                    "12", 16818667202782586754ULL,},
         {  L_,                   "123", 14962907208936606339ULL,},
         {  L_,                  "1234", 13841264755844795919ULL,},
         {  L_,                 "12345",  4217007344502432836ULL,},
         {  L_,                "123456", 15406725965008216808ULL,},
         {  L_,               "1234567",  9451242472090273442ULL,},
         {  L_,              "12345678", 10759732512414454861ULL,},
         {  L_,             "123456789",   972485933408677714ULL,},
         {  L_,            "1234567890",  5673121172557267903ULL,},
         {  L_,           "12345678901", 13862553145028760004ULL,},
         {  L_,          "123456789012", 15680761296024743980ULL,},
         {  L_,         "1234567890123",  9130538754397985015ULL,},
         {  L_,        "12345678901234", 18108216297703361154ULL,},
         {  L_,       "123456789012345", 14690529358019617166ULL,},
         {  L_,      "1234567890123456", 10018078431842207320ULL,},
         {  L_,     "12345678901234567", 18401305144349413810ULL,},
         {  L_,    "123456789012345678", 16182063539957820126ULL,},
         {  L_,   "1234567890123456789", 16302264721124054926ULL,},
         {  L_,  "12345678901234567890",  7953951658377832965ULL,},
#else
        // LINE DATA               HASH
         {  L_,                     "1",  7002407594712107506ULL,},
         {  L_,                    "12", 16818667202782586754ULL,},
         {  L_,                   "123", 14962907208936606339ULL,},
         {  L_,                  "1234",  6699426530780107312ULL,},
         {  L_,                 "12345",  8676331252213764608ULL,},
         {  L_,                "123456",  4550369474379901410ULL,},
         {  L_,               "1234567", 16791262952135217002ULL,},
         {  L_,              "12345678", 16425013147235105742ULL,},
         {  L_,             "123456789",  5214485795892544707ULL,},
         {  L_,            "1234567890", 12261113520408985235ULL,},
         {  L_,           "12345678901",  2168166662679930866ULL,},
         {  L_,          "123456789012", 12754308552622014786ULL,},
         {  L_,         "1234567890123", 14297370022220374180ULL,},
         {  L_,        "12345678901234", 16893477830408992202ULL,},
         {  L_,       "123456789012345",  9435207994519636836ULL,},
         {  L_,      "1234567890123456",  9862342523424011374ULL,},
         {  L_,     "12345678901234567",  1788935288602307262ULL,},
         {  L_,    "123456789012345678",  4717428848732367803ULL,},
         {  L_,   "1234567890123456789", 17814078940325658812ULL,},
         {  L_,  "12345678901234567890", 10441832432953046058ULL,},
#endif
        };
        const int NUM_DATA = sizeof DATA / sizeof *DATA;

        if (verbose) printf("Insert various lengths of c-strings into the"
                            " algorithm both all at once and char by char"
                            " using `operator()`.  Assert that the algorithm"
                            " produces the same result in both cases. (C-1,2)"
                            "\n");
        {
            for (int i = 0; i != NUM_DATA; ++i) {
                const int   LINE  = DATA[i].d_line;
                const char *VALUE = DATA[i].d_value;

                if (veryVerbose) printf("Hashing: %s\n", VALUE);

                Obj contiguousHash;
                Obj dispirateHash;

                contiguousHash(VALUE, strlen(VALUE));
                for (unsigned int j = 0; j < strlen(VALUE); ++j){
                    if (veryVeryVerbose) printf("Hashing by char: %c\n",
                                                                     VALUE[j]);
                    dispirateHash(&VALUE[j], sizeof(char));
                }

                LOOP_ASSERT(LINE, contiguousHash.computeHash() ==
                                                  dispirateHash.computeHash());
            }
        }

        if (verbose) printf("Hash c-strings all at once and with multiple"
                            " calls to `operator()` with length 0.  Assert"
                            " that both methods of hashing c-strings produce"
                            " the same values.(C-3)\n");
        {
            for (int i = 0; i != NUM_DATA; ++i) {
                const int   LINE  = DATA[i].d_line;
                const char *VALUE = DATA[i].d_value;

                if (veryVerbose) printf("Hashing: %s\n", VALUE);

                Obj contiguousHash;
                Obj dispirateHash;

                contiguousHash(VALUE, strlen(VALUE));
                for (unsigned int j = 0; j < strlen(VALUE); ++j){
                    if (veryVeryVerbose) printf("Hashing by char: %c\n",
                                                                     VALUE[j]);
                    dispirateHash(&VALUE[j], sizeof(char));
                    dispirateHash(VALUE, 0);
                }

                LOOP_ASSERT(LINE, contiguousHash.computeHash() ==
                                                  dispirateHash.computeHash());
            }
        }

        if (verbose) printf("Check the output of `computeHash()` against the"
                            " expected results from a known good version of"
                            " the algorithm. (C-4)\n");
        {
            for (int i = 0; i != NUM_DATA; ++i) {
                const int                LINE  = DATA[i].d_line;
                const char              *VALUE = DATA[i].d_value;
                const unsigned long long HASH  = DATA[i].d_expectedHash;

                if (veryVerbose) printf("Hashing: %s, Expecting: %llu\n",
                                        VALUE,
                                        HASH);

                Obj hash;
                hash(VALUE, strlen(VALUE));
                LOOP_ASSERT(LINE, hash.computeHash() == HASH);
            }
        }

        if (verbose) printf("Call `operator()` with null pointers. (C-5)\n");
        {
            const char data[5] = {'a', 'b', 'c', 'd', 'e'};

            bsls::AssertTestHandlerGuard guard;

            ASSERT_FAIL(Obj().operator()(   0, 5));
            ASSERT_PASS(Obj().operator()(   0, 0));
            ASSERT_PASS(Obj().operator()(data, 5));
        }

      } break;
      case 2: {
        // --------------------------------------------------------------------
        // TESTING CREATORS
        //   Ensure that the implicit destructor as well as the explicit
        //   default and parameterized constructors are publicly callable.
        //   Verify that the algorithm can be instantiated with or without a
        //   seed.  Note that a null pointer is not tested here, because there
        //   is no way to perform a BSLS_ASSERT before dereferenceing the
        //   pointer (without a performance penalty).
        //
        // Concerns:
        // 1. Objects can be created using the default constructor.
        //
        // 2. Objects can be created using the parameterized constructor.
        //
        // 3. Objects can be destroyed.
        //
        // Plan:
        // 1. Create a default constructed `SpookyHashAlgorithm` and allow it
        //    to leave scope to be destroyed. (C-1,3)
        //
        // 2. Call the parameterized constructor with a seed. (C-2)
        //
        // Testing:
        //   SpookyHashAlgorithm();
        //   SpookyHashAlgorithm(const char *seed);
        //   ~SpookyHashAlgorithm();
        // --------------------------------------------------------------------

        if (verbose)
            printf("\nTESTING CREATORS"
                   "\n================\n");

        if (verbose) printf("Create a default constructed"
                            " `SpookyHashAlgorithm` and allow it to leave"
                            " scope to be destroyed. (C-1,3)\n");
        {
            Obj alg1;
        }

        if (verbose) printf("Call the parameterized constructor with a seed."
                            " (C-2)\n");
        {
            Uint64 array[2] = {0,0};
            Obj alg1(reinterpret_cast<const char *>(array));
        }

      } break;
      case 1: {
        // --------------------------------------------------------------------
        // BREATHING TEST
        //   This case exercises (but does not fully test) basic functionality.
        //
        // Concerns:
        // 1. The class is sufficiently functional to enable comprehensive
        //    testing in subsequent test cases.
        //
        // Plan:
        // 1. Create an instance of `bsl::SpookyHashAlgorithm`. (C-1)
        //
        // 2. Verify different hashes are produced for different c-strings.
        //    (C-1)
        //
        // 3. Verify the same hashes are produced for the same c-strings. (C-1)
        //
        // 4. Verify different hashes are produced for different `int`s. (C-1)
        //
        // 5. Verify the same hashes are produced for the same `int`s. (C-1)
        //
        // Testing:
        //   BREATHING TEST
        // --------------------------------------------------------------------

        if (verbose) printf("\nBREATHING TEST"
                            "\n==============\n");

        if (verbose) printf("Instantiate `bsl::SpookyHashAlgorithm`\n");
        {
            SpookyHashAlgorithm hashAlg;
        }

        if (verbose) printf("Verify different hashes are produced for"
                            " different c-strings.\n");
        {
            SpookyHashAlgorithm hashAlg1;
            SpookyHashAlgorithm hashAlg2;
            const char * str1 = "Hello World";
            const char * str2 = "Goodbye World";
            hashAlg1(str1, strlen(str1));
            hashAlg2(str2, strlen(str2));
            ASSERT(hashAlg1.computeHash() != hashAlg2.computeHash());
        }

        if (verbose) printf("Verify the same hashes are produced for the same"
                            " c-strings.\n");
        {
            SpookyHashAlgorithm hashAlg1;
            SpookyHashAlgorithm hashAlg2;
            const char * str1 = "Hello World";
            const char * str2 = "Hello World";
            hashAlg1(str1, strlen(str1));
            hashAlg2(str2, strlen(str2));
            ASSERT(hashAlg1.computeHash() == hashAlg2.computeHash());
        }

        if (verbose) printf("Verify different hashes are produced for"
                            " different `int`s.\n");
        {
            SpookyHashAlgorithm hashAlg1;
            SpookyHashAlgorithm hashAlg2;
            int int1 = 123456;
            int int2 = 654321;
            hashAlg1(&int1, sizeof(int));
            hashAlg2(&int2, sizeof(int));
            ASSERT(hashAlg1.computeHash() != hashAlg2.computeHash());
        }

        if (verbose) printf("Verify the same hashes are produced for the same"
                            " `int`s.\n");
        {
            SpookyHashAlgorithm hashAlg1;
            SpookyHashAlgorithm hashAlg2;
            int int1 = 123456;
            int int2 = 123456;
            hashAlg1(&int1, sizeof(int));
            hashAlg2(&int2, sizeof(int));
            ASSERT(hashAlg1.computeHash() == hashAlg2.computeHash());
        }
      } break;
      default: {
        fprintf(stderr, "WARNING: CASE `%d' NOT FOUND.\n", test);
        testStatus = -1;
      }
    }

    return testStatus;
}

// ----------------------------------------------------------------------------
// Copyright 2014 Bloomberg Finance L.P.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// ----------------------------- END-OF-FILE ----------------------------------
